UINavigationController 简要笔记


导航控制器是以栈的方式管理其子视图控制器,凡是当前处在栈顶的视图才会被显示。

导航控制器可以用代码和IB两种方式实现,现简单介绍:
一,代码方式
首先自定义一个继承自UINavigationController类的自定义类。
然后在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中

使用
- (instancetype)initWithRootViewController:(UIViewController *)rootViewController方法或 其他初始化方法,或则直接设置

其viewControllers来制定根控制器,这里的根控制器是导航界面第一个显示的控制器。

其他重要方法及说明:
1.在前一个视图控制器中使用- (void)pushViewController:(UIViewController*)viewController animated:(BOOL)animated方法来

把下一个要显示的视图压入栈顶;
2.修改navigationItem属性的title属性来修改当前导航页标题;
3.设置navigationItem属性的leftBarButtonItem(。。)和rightBarButtonItem属性来修改当前导航页的左右按钮;
4.使用如下方法设置按钮名称及触发后执行的方法
- (instancetype)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem
                                     target:(id)target
                                     action:(SEL)action
- (instancetype)initWithTitle:(NSString *)title
                        style:(UIBarButtonItemStyle)style
                       target:(id)target
                       action:(SEL)action
5.要在前一视图控制器中设置其在下一视图控制器中的返回按钮,如A->B,则需在A中设置从B返回A的返回按钮,
需设置navigationItem属性的backBarButtonItem属性。
6.若要从某个导航页返回到根视图或指定视图可使用如下两种方法
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated
- (NSArray *)popToViewController:(UIViewController *)viewController
                        animated:(BOOL)animated
7.在每个视图中可使用self.navigationController来获取管理它的导航控制器。

二,IB方式
首先拖出navigationController视图控制器,一般初始会设定一个tableViewController作为根控制器,可以更改。
现以tableViewController为根控制器为例说明。

1.可直接修改控制上面的title来修改标题。
2.设置完cell后,选中点击进行切换界面的cell按住鼠标右键拖至下一个视图控制器(需先从菜单中拖出),
在弹出的菜单中选中segue->show或者accessory->show(前者是点击cell除附加视图外的部分,后者是点击附加视图),若对同一个

cell两种情况都有可选中对应的连接线,设置其ID标识,然后在程序中通过segue.identifier
来区分。

重要的方法为
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
对于tableViewController传入的sender为cell对象。

通过[segue destinationViewController]获取要转换到的视图控制器对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值