UI笔记

UI控件进阶2——多控制器管理

2015-03-27  本文已影响611人  冷漠叻荭颜

控制器及View的多种创建方式

// 一、直接通过alloc+init的方式创建
// 1.创建UIWindow
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
// 2.创建控制器 
FirstViewController *vc1 = [[FirstViewController alloc] init];
vc1.view.backgroundColor = [UIColor blueColor];
// 3.设置控制器为UIWindow对象的根控器"rootViewController"                            
self.window.rootViewController = vc1;
// 4.显示UIWindow对象
[self.window makeKeyAndVisible];

// 二、通过加载storyboard文件创建
// 1.加载对应的storyboard文件
UIStoryboard *myStoryboard = [UIStoryboard storyboardWithName:@"My" bundle:nil];
// 2.创建该storyboard中的被设置为"初始化控制器"(箭头所指向的控制器)的对象。
UIViewController *vc2 = [myStoryboard instantiateInitialViewController];
// 3.根据storyboard中的控制器的storyboard ID来创建对应的控制器
UIViewController *vc3 = [myStoryboard instantiateViewControllerWithIdentifier:@"redVwController"];
// 4.设置控制器为UIWindow对象的根控制器"rootViewController"
self.window.rootViewController = vc2;

// 三、通过指定的 xib 文件来创建
// 1.通过xib文件, 创建控制器
FirstViewController *vc1 = [[FirstViewController alloc] initWithNibName:@"First" bundle:nil];
// 2.设置控制器为UIWindow对象的根控制器"rootViewController"
self.window.rootViewController = vc1;


多控制器管理


@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;

// 左上角的返回按钮
@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;

// 添加单个子控制器
- (void)addChildViewController:(UIViewController *)childController;
// 设置子控制器数组
@property (nonatomic,copy) NSArray *viewControllers;
// 标题文字
@property(nonatomic,copy) NSString *title;
// 图标
@property(nonatomic,retain) UIImage *image;
// 选中时的图标
@property(nonatomic,retain) UIImage *selectedImage;
// 提醒数字
@property(nonatomic,copy) NSString *badgeValue;


App主流UI框架结构

// 以modal的形式展示控制器
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion;
// 关闭当初modal出来的控制器
- (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^)(void))completion;


上一篇下一篇

猜你喜欢

热点阅读