2012-04-26 13 views
12

Tôi không hiểu sự khác biệt giữa self.navigationcontroller.navigationitemself.navigationitem tôi đã chuyển hướng dựa trên ứng dụng và trong viewDidLoad phương pháp trong rootViewController của navigationController tôi đặt NavigationItem titleView để hình ảnh tùy chỉnh bằng cách sử dụng mã này là gì là gìsự khác biệt giữa UINavigationController và UINavigationItem

UIImageView* titleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]]; 
self.navigationItem.titleView =titleImage; 

bằng cách này nếu tôi cố gắng để thay đổi titleview bằng cách này

UIImageView* titleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]]; 
self.navigationcontroller.navigationItem.titleView =titleImage; 

không có gì xảy ra. , và khi navigationcontroller đẩy quan điểm khác để ngăn xếp các titleview của navigationitem sẽ bị xóa và bộ tham chiếu đến con số không, và tôi cũng nhận thấy rằng các tài liệu tham khảo của self.navigationcontroller.navigationitemself.navigationitem là không giống nhau.

+0

Xin vui lòng gửi câu hỏi của bạn ở định dạng thích hợp để người đọc có thể nhận được ý tưởng những gì bạn đang yêu cầu và cung cấp cho bạn câu trả lời –

Trả lời

8

Tôi tin rằng những gì bạn đang yêu cầu như sau: self.navigationController.navigationItemself.navigationItem. Tôi bỏ qua phần còn lại của câu hỏi vì nó không thực sự cần thiết cho câu hỏi.

Từ những gì tôi hiểu self.navigationController.navigationItem là vô dụng vì nó đang truy cập mục điều hướng của bộ điều hướng (ví dụ: rootViewController). bộ điều khiển xem của bạn.

UINavigationController là lớp con của UIViewController do đó self.navigationController.navigationItem chỉ là phương pháp tràn từ lớp con. Nó không làm bất cứ điều gì tích cực (ít nhất là trong kinh nghiệm của tôi).

Chỉnh sửa: Đọc this để làm rõ thêm.

+0

trong trường hợp đó tại sao self.navigationitem trong viewcontrollers khác nhau là không giống nhau? – taffarel

+0

từ 'self' sẽ cho bạn biết rằng bạn đang nói riêng về từng viewController. Nó không nên giống nhau vì navigationItem là thuộc tính của ViewController. Tôi chưa bao giờ nói họ giống nhau, thực ra tôi đã nói rằng họ luôn luôn là của riêng mình. – Byte

1

Chúng khác nhau. Nếu bạn thêm động UINavigationController, thì bạn sử dụng self.navigationController.navigationItem.

Hãy làm rõ câu hỏi của bạn.

+0

này là không chính xác, ngay cả khi bạn tự động tạo ra một 'UINavigationController', bạn nên truy cập vào bộ điều khiển quan điểm của' navigationItem' – Zorayr