这是我的第一篇博文,主要是将我的学习心得与大家共享一下,因为水平有限如果有错误的地方请各位多多包涵。
在ios开发过程中最主要的几个基本类是UIViewController,UIView,UIResponder,Layer等.
NavigationController继承自UIViewController. 是ios导航控制的基本类. 页面结构如下
NavigationController的页面结构由customView,navigationBar和toolBar组成.
navigationBar和toolBar的属性是readonly,如需设置导航栏是否显示需用如下方法
[self.navigationController setNavigationBarHidden:YES];
[self.navigationController setToolbarHidden:YES];
也可以设置自定义导航栏,但必须继承自navigationBarClass和toolbarClass
[_nav initWithNavigationBarClass:(Class)navigationBarClass toolbarClass:(Class)toolbarClass]
customView显示的是NavigationController stack中最顶端UIViewController. 改变stack顶端UIViewController就可以起到导航的作用
[_controller.navigationController pushViewController:[[UIViewController alloc] init] animated:YES];
[_controller.navigationController popViewControllerAnimated:YES]
下面是创建导航的实例
#import "YTZAppDelegate.h"
@implementation YTZAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
_nav = [[UINavigationController alloc] initWithRootViewController: [[UIViewController alloc] init]];
[self.window addSubview:_nav.view];
[self.window makeKeyAndVisible];
return YES;
}
在ios7.0以上版本, navigationBar默认会盖在ViewController顶端, 这是因为navigationBar默认是透明的, navigationController会将customView布局到全屏,然后再将bar布局在顶端的位置. 如果不希望navigationBar盖在viewController上面可以这样设置
_nav.navigationBar.translucent = NO;
以上是navigationController结构和基本使用方法,如有问题请给我留言