导航控制器

1.RootViewController *rootVC=[[RootViewController alloc]init];   创建视图控制器
UINavigationController *navigation=[[UINavigationController alloc]initWithRootViewController:rootVC];    导航控制器加载视图控制器
self.window.rootViewController=navigation;  window的根控制器为导航控制器




2.UINavigationController——>ViewController——>UIView
继续封装的问题  功能更加强大
20状态栏 44导航栏




3.导航栏操作就是个栈操作  显示最顶层的视图控制器


跳转到指定控制器,删除后面所有控制器 ,销毁




4.状态栏的标题
self.title=[NSString stringWithFormat:@"第%d页",self.navigationController.viewControllers.count];






5.self.UINavigationController.UINavigationBar.BarStyle  导航栏 
self.UINavigationItem.rightBarButtonItem   导航项(左边leftBarButtonItem 右边rightBarButtonItem 中间title、titleView)
self.toolbarItems 是自己的属性self.toolbarItems = @[item1,itemspace,item2,itemspace,item3];
self.navigation.toolbarHidden 只有一个
6.总结
一个导航控制器包含一个导航栏UINavigationBar
一个子控制器对应一个导航项UINavigationItem
UINavigationBar管理一系列UINavigationItem,每个UINavigationItem和一个子控制器
UINavigationItem控制器多个UIBarButtonItem(2个)
子控制器就是ViewController  只能设置自己方面的属性
总共只有一个导航器,设置了所有的自控制器都改变  设置UINavigationBar一定要拿到UINavigationController




7.main-->AppDelegate-->ViewController
- (BOOL)application:(UIApplication *)application 
- (void)viewDidLoad






8.setBackgroundImage:  背景
setImage  按钮区域 想显示文字的话只能设置setBackgroundImage 
图片颜色不能拉伸




9.导航项的创建
(1).导航项的一种创建方式
[UIBarButtonItem *UIBarButtonItemA=[UIBarButtonItem alloc]initWithView:UIButton];
self.NavigationItem.leftBarButtonItems=@[UIBarButtonItemA,UIBarButtonItemB];


(2).导航项的另一种创建方式
[leftView addSubview:leftButton1];
[leftView addSubview:leftButton2];
self.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc]initWithCustomView:leftView];


9.数组
 NSArray *images=@[@"20120618100.jpg",@"20120618101.jpg"];


10.视图的切换
 模态视图 [self presentViewController:photoVC animated:YES completion:nil];
 导航控制器 [self.navigationController pushViewController:photoVC animated:YES];


11.传值问题   先把对方属性创立 并赋值即行
代理 传值时下一图的代理是上一图  下一图的功能由代理实现


self.vieImage.image  要用setImage 方法才有属性




12.toolbar 和 bar的隐藏与显示
[self.navigationController setNavigationBarHidden:!self.navigationController.navigationBarHidden];
    [self.navigationController setToolbarHidden:!self.navigationController.toolbarHidden animated:YES];


13.导航控制器的委托方法UINavigationControllerDelegate,通过代理监听代理控制器的切换


14.UIAlertView *alertView=[[UIAlertView alloc]initWithTitle:@"温馨提示" message:@"只要是视图就可以添加到" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
    alertView.frame=CGRectMake(0, 300, 320, 180);
    [alertView show];
    [alertView release];


15.UIActionSheet *actionSheet=[[UIActionSheet alloc]initWithTitle:@"恭喜" delegate:nil cancelButtonTitle:@"取消" destructiveButtonTitle:@"你又成功了一步" otherButtonTitles:@"你可以试试自己的图片", nil];
    [actionSheet showInView:self.view];
    [actionSheet release];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS中的导航控制器(UINavigationController)是一种视图控制器容器,用于管理应用程序中的多个视图控制器。它是一种实现iOS中视图控制器之间导航的常用方式,可以使用它来管理应用程序的层级结构。 导航控制器的工作原理如下: 1. 创建导航控制器 在应用程序中创建一个导航控制器,然后将第一个视图控制器添加到该导航控制器中。 ``` let navController = UINavigationController(rootViewController: firstViewController) ``` 2. 添加视图控制器 使用以下方法将要显示的视图控制器添加到导航控制器中。 ``` navController.pushViewController(secondViewController, animated: true) ``` 3. 返回视图控制器 使用以下方法将当前显示的视图控制器返回到导航控制器中的上一个视图控制器。 ``` navController.popViewController(animated: true) ``` 举例来说,假设我们有一个简单的应用程序,它有三个视图控制器:`ViewController1`,`ViewController2`和`ViewController3`。我们通过以下代码创建一个导航控制器,并将`ViewController1`添加为第一个视图控制器: ``` let navController = UINavigationController(rootViewController: ViewController1()) ``` 当用户在`ViewController1`中点击按钮时,我们将跳转到`ViewController2`。我们可以使用以下代码将`ViewController2`添加到导航控制器中: ``` navController.pushViewController(ViewController2(), animated: true) ``` 当用户在`ViewController2`中点击返回按钮时,我们将返回到`ViewController1`。我们可以使用以下代码将当前显示的视图控制器返回到导航控制器中的上一个视图控制器: ``` navController.popViewController(animated: true) ``` 当用户在`ViewController2`中点击另一个按钮时,我们将跳转到`ViewController3`。我们可以使用以下代码将`ViewController3`添加到导航控制器中: ``` navController.pushViewController(ViewController3(), animated: true) ``` 这就是导航控制器的基本工作原理和用法。它可以使我们方便地管理应用程序的视图控制器层级结构,并实现视图控制器之间的导航
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值