Sự khác biệt giữa self.navigationController.navigationItem và self.navigationItem là gì? Tôi đang sử dụng một UINavigationController trong suốt ứng dụng và khi tôi sử dụng self.navigationController.navigationItem.rightBarButtonItems, trong một trong các phương thức viewDidLoad của một trong các viewControllers, mảng là rỗng. Tuy nhiên nếu tôi sử dụng self.navigationItem.rightBarButtonItems, tôi thấy các mục nút thanh của tôi. Sự khác nhau giữa hai cuộc gọi là gì? Cảm ơn!Sự khác biệt giữa self.navigationController.navigationItem và self.navigationItem
Trả lời
A UINavigationController
là một phân lớp của UIViewController
. Như vậy, nó có thuộc tính độc lập riêng của nó navigationItem
, nó được thừa kế từ UIViewController
. Bạn nên bỏ qua thuộc tính này, vì nó sẽ chỉ được sử dụng nếu bạn nhúng một bộ điều khiển điều hướng bên trong một bộ điều khiển điều hướng khác (mà không ai trong tâm trí của họ sẽ làm).
Từ các tài liệu của UIViewController+UINavigationControllerItem
, xem dưới đây, chúng ta nên sử dụng các navigationItem
sở hữu trực tiếp trên bộ điều khiển xem:
// Created on-demand so that a view controller may customize its navigation appearance.
@property(nonatomic,readonly,strong) UINavigationItem *navigationItem;
UINavigationController
cũng có một tài sản kể từ khi nó được kế thừa từ UIViewController
navigationItem
, nhưng đặt nó thắng' t ảnh hưởng đến thuộc tính điều hướng của bộ điều khiển chế độ xem.
Từ một thử nghiệm nhanh, chúng ta có thể thấy rằng các mặt hàng này chuyển hướng không bằng nhau hoặc là:
(lldb) po self.navigationItem
<UINavigationItem: 0x7f865c99ec50>
(lldb) expr -- @import UIKit
(lldb) po self.navigationController.navigationItem
<UINavigationItem: 0x7f865c811740>
- 1. sự khác biệt giữa UINavigationController và UINavigationItem
- 2. Sự khác biệt giữa $ (...) và `...`
- 3. Sự khác biệt giữa. và #
- 4. Sự khác biệt giữa $ * và $ @
- 5. Sự khác biệt giữa ". +" Và ". +?"
- 6. Sự khác biệt giữa "**/* /" và "** /"?
- 7. Sự khác biệt giữa = và: =
- 8. Sự khác biệt về sự khác biệt giữa Matplotlib giữa Agg và Cairo
- 9. Sự khác biệt giữa Html.RenderAction và Html.Action
- 10. Sự khác biệt giữa cookie và phiên?
- 11. Sự khác biệt giữa '.' và "." trong java
- 12. Sự khác biệt giữa SimpleDB và S3
- 13. C++ - Sự khác biệt giữa (*). và ->?
- 14. Sự khác biệt giữa offsetHeight và clientHeight
- 15. Sự khác biệt giữa RDLC và SSRS
- 16. Sự khác biệt giữa "\ n" và Environment.NewLine
- 17. Sự khác biệt giữa qt và PyQt4
- 18. Sự khác biệt giữa AForge và OpenCV
- 19. Sự khác biệt giữa toFixed() và toPrecision()?
- 20. sự khác biệt giữa cacao và cocoatouch
- 21. Sự khác biệt giữa smtpClient.send() và smtpClient.SendAsync()?
- 22. Sự khác biệt giữa window.location.host và window.location.hostname
- 23. Sự khác biệt giữa DTLS và TLS
- 24. Sự khác biệt giữa Mealy và Moore
- 25. sự khác biệt giữa createRfcommSocketToServiceRecord và createRfcommSocket
- 26. Sự khác biệt giữa Arrays.sort() và Arrays.parallelSort()
- 27. sự khác biệt giữa orm và pdo
- 28. Sự khác biệt giữa nproc và ulimit?
- 29. Sự khác biệt giữa apc_add và apc_store?
- 30. Sự khác biệt giữa mb_substr và substr