1.UINavigationController是用于构建分层应用程序的主要工具,它维护了一个视图控制器栈,任何类型的视图控制器都可以放入.
它在管理,以及换入和换出多个内容视图方面,与UITabBarController(标签控制器)类似. 两者间的主要不同在于:
UINavigationControlle是作为栈来实现,它更适合用于处理分层数据.
2. 根控制器,子控制器.
在设计导航控制器时,需要指定用户看到的第一个视图,该视图处在导航栈的最底层,其对应的控制器称为根控制器.所以不要把根控制器理解为导航控制器.根控制器也是导航控制器的一个子控制器.
在术语上把栈中的除了根控制器其余的控制器称为子控制器.
一般地,根控制器对应的视图上有各个子控制器视图的入口,回退到根视图然后再切换各个子视图.
默认地,导航控制器会自动在当前子控制器对应视图的导航栏的右端加一个返回按钮,名称是上一个视图的标题.
3. 导航按钮.
导航按钮类似于网页上的后退按钮,当点击时,当前的视图控制器出栈,栈中的下一个视图成为当前视图.
4. 其它术语:
扩展图标(accessory icon)称为扩展指示器(disclosure indicator),告知将切换到另一个视图,它以一个灰色箭头表示.
细节展示按钮(detail disclosure button)不仅是一个图标,它还是一个可单击的控件.
5.静态使用UINavigationController(通过IB来创建实例)
<<iphone开发基础教程>>第9章,新建window-based application,使用IB向mainwindow.xib添加了一个UINavigationController,
6.控制器与其成员间的关系
(1).UINavigationController
主要成员:
UINavigationBar *navigationBar;应该是管理了所有子控制器的navigationItem,显示在窗口顶部;
UIToolbar *toolbar;工具栏,显示在窗口底部;
(2).UINavigationBar管理了一组 UINavigationItem.
navigationBar.frame.size.height=44;
(3).UIToolBar管理了一组UIBarButtonItem
(4).UITabBar管理了一组 UITabBarItem.
UITabBarController
tabBar.frame.size.height=49;
(5).UIViewController提供了基础的view管理模型.
主要成员:
UINavigationItem *navigationItem;用于展现视图控制,第一次被访问时创建,被添加到一个navigationBar中.
NSArray *toolbarItems;一组UIBarButtonItem,被添加到一个toolBar中.
UITabBarItem *tabBarItem;被添加到一个tabBar中.
(6).UINavigationItem是一个视图顶部上的导航条
有如下主要成员:
UIView* titleView:显示在导航栏中间.有解释说This property is ignored if leftBarButtonItem is not nil.,使用后发现不是这样的.
UIBarButtonItem *leftBarButtonItem
UIBarButtonItem *rightBarButtonItem
(7).UIBarButtonItem封装了一些属性和行为,它被添加到UIToolBar中.
主要成员
SEL action;
UIView* customView;
7.一些高级控制器
UIImagePickerController,
UITableViewController,
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/andyweike/archive/2010/12/07/6060750.aspx