1.7 KiB
Observing UINavigationItem instances
MDCNavigationBar can observe changes made to a navigation item property much like how a
UINavigationBar does. This feature is the recommended way to populate the navigation bar's
properties because it allows your view controllers to continue using navigationItem as expected,
with a few exceptions outlined below.
If you intend to use UINavigationItem observation it is recommended that you do not directly set the navigation bar properties outlined in
MDCUINavigationItemObservables. Instead, treat the observednavigationItemobject as the single source of truth for your navigationBar's state.
Starting observation
To begin observing a UINavigationItem instance you must call observeNavigationItem:.
Swift
navigationBar.observe(navigationItem)
Objective-C
[navigationBar observeNavigationItem:self.navigationItem];
Stopping observation
Swift
navigationBar.unobserveNavigationItem()
Objective-C
[navigationBar unobserveNavigationItem];
Exceptions
All of the typical properties including UIViewController's title property will affect the
navigation bar as you'd expect, with the following exceptions:
- None of the
animated:method varients are supported because they do not implement KVO events. Use of these methods will result in the navigation bar becoming out of sync with the navigationItem properties. promptis not presently supported. https://github.com/material-components/material-components-ios/issues/230.