美文网首页
导航控制器层次结构

导航控制器层次结构

作者: JopYin | 来源:发表于2019-04-18 15:44 被阅读0次

1.UIBarButtonItem

可以设置其 图片 文字 以及样式
也可以自定义customView

@interface UIBarButtonItem : UIBarItem <NSCoding>
- (instancetype)initWithTitle:(nullable NSString *)title style:(UIBarButtonItemStyle)style target:(nullable id)target action:(nullable SEL)action;
- (instancetype)initWithImage:(nullable UIImage *)image style:(UIBarButtonItemStyle)style target:(nullable id)target action:(nullable SEL)action;
- (instancetype)initWithCustomView:(UIView *)customView;

2.UINavigationItem

一个navigationItem中有多个UIBarButtonItem
一个UIVIewController只有一个navigationItem

@interface UINavigationItem : NSObject <NSCoding>
@property(nullable, nonatomic,copy)   NSString        *title;             // Title when topmost on the stack. default is nil
@property(nullable, nonatomic,strong) UIView          *titleView;         // Custom view to use in lieu of a title. May be sized horizontally. Only used when item is topmost on the stack.
@property(nullable, nonatomic,strong) UIBarButtonItem *leftBarButtonItem;
@property(nullable, nonatomic,strong) UIBarButtonItem *rightBarButtonItem;
@property (nonatomic, retain, nullable) UISearchController *searchController API_AVAILABLE(ios(11.0)) API_UNAVAILABLE(tvos);

3.UINavigationBar

navigationBar中包含很多navigationItem
要想改变和设置导航栏字体或者样式等应设置navigationBar对应属性

@interface UINavigationBar : UIView <NSCoding, UIBarPositioning> 
- (void)pushNavigationItem:(UINavigationItem *)item animated:(BOOL)animated;
@property(nullable, nonatomic,readonly,strong) UINavigationItem *topItem;
@property(nullable, nonatomic,readonly,strong) UINavigationItem *backItem;
@property(null_resettable, nonatomic,strong) UIColor *tintColor;
@property(nullable, nonatomic,strong) UIColor *barTintColor;
@property(nullable, nonatomic,strong) UIImage *shadowImage NS_AVAILABLE_IOS(6_0) UI_APPEARANCE_SELECTOR;

4.UINavigationController

控制器栈里面有很多控制器:根控制器,二级控制器等
通过navigationBar管理操作切换这些控制器

@property(nonatomic,readonly) UINavigationBar *navigationBar;    //每个NavigationController都有一个操作控制器栈的Bar

UIViewController获取对应的navigationBar以及navigationItem

  • 当UIViewController被push到navigationController中,可以通过以下方法获取对应的NavigationController和navigationItem
  • 每一个UIViewController 只有一个navigationItem
  • 每一个NavigationController 只有一个navigationBar
  • 每一个navigationBar 有很多个navigationItem
  • 每一个navigationItem 有很多UIBarButtonItem 如:leftBarButtonItem、rightBarButtonItem、backBarButtonItem
@interface UIViewController (UINavigationControllerItem)

@property(nonatomic,readonly,strong) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.
@property(nonatomic) BOOL hidesBottomBarWhenPushed __TVOS_PROHIBITED; // If YES, then when this view controller is pushed into a controller hierarchy with a bottom bar (like a tab bar), the bottom bar will slide out. Default is NO.
@property(nullable, nonatomic,readonly,strong) UINavigationController *navigationController; // If this view controller has been pushed onto a navigation controller, return it.
@end

相关文章

  • 导航控制器层次结构

    1.UIBarButtonItem 可以设置其 图片 文字 以及样式也可以自定义customView 2.UI...

  • 导航控制器

    导航控制器 多控制器的跳转 导航控制器view的结构 导航条y:20H:44 存放栈顶控制器的view 导航控制器...

  • nav图文讲解(总结)

    首先是导航控制器下的视图结构 导航控制器的三个区:导航区:导航控制器的navigationBar,管NSArray...

  • UINavigationController ——— 导航控制器

    1、具有管理视图控制器的控制器 2、导航控制器管理具有层次级别的多视图控制器 3、创建导航控制器 ①、创建视图控制...

  • 分栏控制器

    1. 基本概念 与导航控制器区别导航控制器:有层次区别分栏控制器:平行关系屏幕快照 2016-11-30 上午9....

  • 导航控制器UINavigationController

    1、导航控制器View的结构 导航控制器它是一个控制器。它肯定有一个自己的View。导航控制器的View上面有两层...

  • Xcode调试

    打印控制器层次结构和视图层次结构 在LLDB使用 po [[UIWindow keyWindow] recursi...

  • iOS7后使用UINavigationBar和TabBar出现的

    图中的导航视图是存储在导航控制器视图属性中的视图,图中的所有其他视图都是由导航控制器管理的不透明视图层次的一部分。...

  • NavigationController导航控制器

    1、导航控制的view结构 2、导航控制器的注意点 设置导航条透明和标题透明 层级关系: leftBarButto...

  • 学习笔记-导航栏控制器

    导航控制器(UINavigationController) 导航控制器:其功能是导航,而非显示视图 导航控制器的创...

网友评论

      本文标题:导航控制器层次结构

      本文链接:https://www.haomeiwen.com/subject/vuhtgqtx.html