iOS開發:iOS中的多控制器管理

iOS中的控制器有三種建立方式:app

1.經過storyboard建立
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Apply" bundle:nil];
SchemeViewController *schemeVC = [storyboard instantiateViewControllerWithIdentifier:@"SchemeViewController"];
2.指定xib文件來建立
YFViewController *mj = [[YFViewController alloc] initWithNibName:@"YFViewController" bundle:nil];
3.直接建立
YFViewController *mj = [[YFViewController alloc] init];
一個iOS的app不多隻由一個控制器組成,除非這個app極其簡單,當app中有多個控制器的時候,咱們就須要對這些控制器進行管理,有多個view時,能夠用一個大的view去管理1個或者多個小view,控制器也是如此,用1個控制器去管理其餘多個控制器,好比,用一個控制器A去管理3個控制器B、C、D,控制器A被稱爲控制器B、C、D的「父控制器」,控制器B、C、D的被稱爲控制器A的「子控制器」,爲了便於管理控制器,iOS提供了2個比較特殊的控制器,UINavigationController和UITabBarController。
•UINavigationController以棧的形式保存子控制器
•使用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;
UIBarButtonItem *rightBarButtonItem  
//右上角的視圖
@property(nonatomic,retain) UIBarButtonItem *rightBarButtonItem;
相關文章
相關標籤/搜索