如何创建一个控制器
1.通过storyboard创建
XViewController *Xview = [[XViewController alloc] init];
2.指定xib文件创建
XViewController *Xview = [[XViewController alloc] initWithNibName:@"XViewController" bundle:nil];
控制器中view的创建
1.view的创建过程
if(loadView) 根据loadView代码实现创建 else if(storyboard) 根据storyboard描述创建 else if(nibName) 根据nibName对应的xib的描述创建 else if(控制器名-Controller.xib) 根据此xib描述创建 else if(控制器名.xib) 根据此xib描述创建 else 创建一个空得view
2.控制器view的延迟加载
用到得时候才会加载
可以用isViewLoaded方法判断一个UIViewController的view是否已经被加载
控制器的view加载完毕就会调用viewDidLoad方法
多控制器UINavigationController的简单使用
•UINavigationController的使用步骤
1.初始化UINavigationController
2.设置UIWindow的rootViewController为UINavigationController
3.根据具体情况,通过push方法添加对应个数的子控制器
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;
修改导航栏内容
•导航栏的内容由栈顶控制器的navigationItem属性决定
•UINavigationItem有以下属性影响着导航栏的内容
左上角的返回按钮
@property(nonatomic,retain) UIBarButtonItem *backBarButtonItem;
中间的标题视图
@property(nonatomic,retain) UIView *titleView;
中间的标题文字
@property(nonatomic,copy) NSString *title;
左上角的视图
@property(nonatomic,retain) UIBarButtonItem *leftBarButtonItem;
右上角的视图
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;