iOS开发UI篇 -- UINagivationController
来源:互联网 发布:怎么远程授权php 编辑:程序博客网 时间:2024/04/30 07:38
UINavigationController
UITabBarController
---------------------------------------------------
1、UINavigationController常用属性
UINavigationController以栈的形式保存子控制器
@property(nonatomic,copy) NSArray *viewControllers;
@property(nonatomic,readonly) NSArray *childViewControllers;
使用push方法能将某个控制器压入栈
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
使用pop方法可以移除控制器
将栈顶的控制器移除
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
回到指定的子控制器 (少用)
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated;
回到根控制器(栈底控制器)
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated;
---------------------------------------------------
2、导航控制器通过栈来管理子控制器
导航控制器是通过栈的形式来管理子控制器的(先进后出)
显示在导航控制器上得view永远是栈顶控制器的view
一个导航控制器只有一个导航条,也就是说所有的自控制器公用一个导航条。
显示在导航控制器上面的永远是栈顶控制器的view,在栈中的View是不会被销毁的,当pop出了栈,view才会被销毁
只会有一个导航栏,所以导航栏上面显示什么内容由栈顶控制器决定
但是!有个特例!左上角的返回按钮是由上一个Controller决定的
-------------------------------------------------
3、如何修改导航栏的内容
导航栏的内容由栈顶控制器的navigationItem属性决定
显示在导航控制器上面的永远是栈顶控制器的view,在栈中的View是不会被销毁的,当pop出了栈,view才会被销毁
只会有一个导航栏,所以导航栏上面显示什么内容由栈顶控制器决定
但是!有个特例!左上角的返回按钮是由上一个Controller决定的
UINavigationItem有以下属性影响着导航栏的内容
左上角的返回按钮
@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;
中间的标题视图
@property(nonatomic,retain) UIView *titleView;
中间的标题文字
@property(nonatomic,copy) NSString *title;
左上角的视图
@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;
UIBarButtonItem *rightBarButtonItem 右上角的视图
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;
4、如何为导航栏添加子控制器
- (IBAction)jump { // 展示MJTwoViewController,在第二个Vc中添加一个导航栏 MJTwoViewController *two = [[MJTwoViewController alloc] init]; UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:two]; [self presentViewController:nav animated:YES completion:^{ NSLog(@"展示MJTwoViewController完毕......."); }];}
- iOS开发UI篇 -- UINagivationController
- iOS开发UI篇
- iOS开发UI篇
- iOS开发UI篇 -- UIView
- iOS开发UI篇 -- UILable
- iOS开发UI篇 -- UIButton
- iOS开发UI篇 -- UIScrollView
- iOS开发UI篇 -- UIPageControl
- iOS开发UI篇 -- UITableView
- iOS开发UI篇 -- UICollectionView
- iOS开发UI篇 -- UIWebView
- iOS开发UI篇 -- 0323初识iOS
- iOS开发UI篇—APP主流UI框架结构
- IOS开发 UI篇 APP主流UI框架结构
- iOS开发UI篇—APP主流UI框架结构
- iOS开发UI篇—APP主流UI框架结构
- iOS开发---UI/UE设计篇
- iOS开发---UI/UE设计篇
- 1020. 月饼 (25)
- 多个Apk共享在一个进程中
- Android4.4 应用分析——修改Launcher3应用以适应单屏壁纸
- 黑马程序员——自学c++1
- REST Service 探讨与实践
- iOS开发UI篇 -- UINagivationController
- 6410LCD显示配置
- [leetcode 138]Copy List with Random Pointer
- bootstrap仿婚纱摄影网站首页
- 临界区的api原型 EnterCriticalSection和 LeaveCriticalSection
- 【lua】-- lua编译
- 10574 - Counting Rectangles
- leetcode 2---Reverse Integer
- 过河问题