@UINavigationControlle簡介:
1.導航控制器,專門管理具有層級關系內容的導航
2.采用棧的方式管理所有controller,每個controller管理各自的視圖
3.推出顯示一個新的controller
4.提供返回上一級controller的默認button和方法

@UINavigationControlle結構:
1.它是UIViewController的子類,因此它也由view屬性
2.它的view包含3個子視圖:navigationBar ? ? contentView(不是屬性) ? ? ?toolbar
3.導航控制器使用這些對象實現導航界面,我們負責提供這些對象,進行展示,參考下圖(蘋果官方):

UINavigationController view層級
@UINavigationControlle的創建:
1.它以棧的方式管理所控制的視圖,至少要有一個被管理的UIViewController作為rootViewController
2.導航界面的對象會被同時創建
3.設置delegate,監控導航堆棧的變化,即viewControllers,topController,visibleController等等


代碼示例:
~~~
HMTViewController * hmtView = [[HMTViewController alloc]init];
UINavigationController * rootNavigation = [[UINavigationController alloc]initWithRootViewController:hmtView];
NSLog(@"%@",rootNavigation);
self.window.rootViewController = rootNavigation;
~~~
@UINavigationControlle導航方法:
1.推出下一級controller(入棧):
? ??pushViewController:animated:
2.返回上一級controller(出棧):
? ??popViewControllerAnimated: ? ? ? ? ? ? ? ? ? ? ? ? // 返回上一級?
? ??popToRootViewControllerAnimated: ? ? ? ? ? ? ?// 返回根視圖(中間無論多少個視圖都全部被出棧,沒了)
? ? //?*@property**(**nonatomic**,**copy**)**NSArray**?*viewControllers;**// The current view controller stack.*
? ? //?通過*[**self**.**navigationController**.**viewControllers?**objectAtIndex**:**n**] 來選定指定視圖*
? ??popToViewController:animated: ? ? ? ? ? ? ? ? ? ? // ?返回指定視圖
3.導航控制器提供已有的控件實現返回上一級(即被根視圖推出的View都自帶一個返回
代碼示例:
@這里必須要說一下self.navigationController ?
// If this view controller has been pushed onto a navigation controller, return it.
~~~
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton *push = [UIButton buttonWithType:UIButtonTypeSystem];
push.frame =CGRectMake(100, 100, 200, 200);
[push setTitle:@"下一頁" forState:UIControlStateNormal];
[push addTarget:self action:@selector(pushNextController) forControlEvents:(UIControlEventTouchUpInside)];
[self.view addSubview:push];
// Do any additional setup after loading the view.
}
- (void)pushNextController{
NSLog(@"%@",self.navigationController);
HMTNext2ViewController * hmtNext2 = [[HMTNext2ViewController alloc]init];
[self.navigationController pushViewController:hmtNext2 animated:YES];
}
~~~
- 前言
- UITableView詳解(UITableViewCell(一)重中之重)
- UITableView詳解(UITableViewCell(二) 自定義cell)
- UITableView詳解(UITableViewCell(三) cell根據文本長度來自動調整cell高度)
- UITableView詳解(UITableViewCell(四) 增加 刪除 移動)
- UITabBarController詳解(一)UITabBarController的介紹和設置(偷了點懶,直接用了ARC)
- UITabBarController詳解(二)UITabBarController的代理方法以及模態顯示
- UISearchBar詳解(一)基本屬性
- UISearchBar詳解(二)數據刷選類:NSPredicate
- UISearchDisplayController 的使用
- UINavigationController詳解(一)
- UINavigationController詳解(二)UINavigationBar(UIBarButtonItem)
- UINavigationController詳解(三)UIToolBar
- UINavigationController詳解(四)iOS7新特性
- UIScrollView控件詳解
- UISwitch用法-以及-自定義UISwitch控件
- UIAlertView用法
- UILabel 的常見屬性和方法:
- UIPickerView(滾動選擇控制器)
- UIActivityIndicatorView(活動指示器 ---------> 網絡卡后加載,畫面,圖像加載閃爍的圓圈)
- UIStepper
- UIImagePickerController--------圖片選取器
- UITextView
- UITabBarController詳解(三)自定義UITabBarController
- UIWebView基本介紹