ios开发NavigationController学习心得

这是我的第一篇博文,主要是将我的学习心得与大家共享一下,因为水平有限如果有错误的地方请各位多多包涵。

在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结构和基本使用方法,如有问题请给我留言



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值