iPhone/iOS UIViewController之UINavigationController

一.UINavigationController重要参数




二.创建UINavigationController

    UIViewController *myViewController = [[MyViewController alloc] init];
    navigationController = [[UINavigationController alloc]
                                initWithRootViewController:myViewController];
 
    window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    window.rootViewController = navigationController;
    [window makeKeyAndVisible];
或者用nib来创建

三.全屏化UINavigationController

1.navigation bar:设置navigationController的translucent为yes

2.toolbar:设置toolbar的translucent为yes

3.设置wantsFullScreenLayout为yes

        nav.navigationBar.translucent=YES;//导航栏可为内容区域,透明
        nav.toolbarHidden=NO;//显示自带的toolbar
        nav.toolbar.translucent=YES;//工具栏可为内容区域,透明

四.调整navigation的内容以及相关事件流

调整viewControllers调整显示界面

a)pushViewController:animated:

b)popViewControllerAnimated:

c)setViewControllers:animated:

d)popToRootViewControllerAnimated:

e)popToViewController:animated:

f)也可以直接设置viewControllers,显示的view 将会是array的lastObject

监控事件

除了controller常规的覆盖方法外,还可以使用delegate来跟踪状态


五.定义 Navigation Bar样式

1.类似navigation Controller的viewControllers的结构,Navigation Bar是包含UINavigationItem类型的数据

每个viewControllers和navigationItem的array都是平行一一对应的。比方说某个controller在viewControllers的位置和items的位置是一样的。

viewController通过navigationItem参数来获得对应的item.

navigationitem主要的参数和位置关系如下:

左:backBarButtonItem这个是在navigation controller中默认添加上去的

      leftBarButtonItem:这个是custom自己的UIBarButtonItem

右:rightBarButtonItem:同样是custom自己的UIBarButtonItem

中间:titleView:用自己的custom View来显示中部分用作title.如果没有用view设置,则使用title这个String对象

详细如下图:


2.UINavigationBar参数

a)barStyle:bar的样式

b)translucent:是否透明,这样navigationBar下也显示内容

c)tintColor:背景颜色

3.NavigationBar设置viewController默认的editButton

myViewController.navigationItem.rightBarButtonItem = [myViewController editButtonItem];

五.显示Navigation ToolBar

1.toolbar的构成


每个content view controller都有对应的toolbarItems的数组,数组中放的是Toolbaritem类的实例

UIBarButtonItem *flexibleSpaceButtonItem = [[UIBarButtonItem alloc]
                        initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                        target:nil action:nil];
 
   // Create and configure the segmented control
   UISegmentedControl *sortToggle = [[UISegmentedControl alloc]
                        initWithItems:[NSArray arrayWithObjects:@"Ascending",
                                        @"Descending", nil]];
   sortToggle.segmentedControlStyle = UISegmentedControlStyleBar;
   sortToggle.selectedSegmentIndex = 0;
   [sortToggle addTarget:self action:@selector(toggleSorting:)
               forControlEvents:UIControlEventValueChanged];
 
   // Create the bar button item for the segmented control
   UIBarButtonItem *sortToggleButtonItem = [[UIBarButtonItem alloc]
                                    initWithCustomView:sortToggle];
 
   // Set our toolbar items
   self.toolbarItems = [NSArray arrayWithObjects:
                         flexibleSpaceButtonItem,
                         sortToggleButtonItem,
                         flexibleSpaceButtonItem,
                         nil];

六.常用方法以及参数

UIViewController:

-(void)hidesBottomBarWhenPushed:当从navigation stack中push或者pop时,自动隐藏底部的toolbar。


参考文档

View Controller Catalog for iOS

参考代码

(苹果官方)NavBar


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值