UINavigationBar
// Pushing a navigation item displays the item's title in the center of the navigation bar.
// The previous top navigation item (if it exists) is displayed as a "back" button on the left.
- (void)pushNavigationItem:(UINavigationItem *)item animated:(BOOL)animated;
- (nullable UINavigationItem *)popNavigationItemAnimated:(BOOL)animated; // Returns the item that was popped.
@property(nullable, nonatomic,readonly,strong) UINavigationItem *topItem;
@property(nullable, nonatomic,readonly,strong) UINavigationItem *backItem;
@property(nullable,nonatomic,copy) NSArray<UINavigationItem *> *items;
- (void)setItems:(nullable NSArray<UINavigationItem *> *)items animated:(BOOL)animated; // If animated is YES, then simulate a push or pop depending on whether the new top item was previously in the stack.
注意:
- backItem是stack中topItem下的item,即second topmost item
- topItem的leftBarButtonItem如果为nil,则显示back button,用backItem的title作为back button的title,如果backItem的title为nil,则back button的title显示"Back"
- 属性items和setItems的items,array的front-to-back顺序对应stack的bottom-to-top顺序
- setItems动画显示时取决于items中的最后一项,如果最后一项不存在当前stack中,显示push动画,如果存在当前stack中且不存在于topmost中,显示pop动画,如果刚好是topmost,则无动画