Xcode9项目页面跳转崩溃

新升级手机系统,然后跟着xcode、电脑系统升级,Xcode版本9.4,然后运行程序,没问题。然后点击跳转程序直接崩溃,崩溃到main()函数。

究其原因---navigation使用方法有点变化

首先,在一些页面中为了自定义导航栏,所以在

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    
    [self.navigationController setNavigationBarHidden:NO animated:YES];
}
- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
  
    [self.navigationController setNavigationBarHidden:YES animated:YES];

}
然后自定义一些按钮啥的。然后在跳转的页面设置

self.navigationItem.title = @"关于我们";

xcode6.3、xcode8.3运行没问题,而且一直没动过。然而使用最新下载的xocde9.4,点击页面跳转,直接崩溃。而且毫无崩溃信息。

这时候,怀疑xcode有些新特性,所以赶紧查了下xcode9都有哪些新功能和改变,然而并没有找到解决我问题的办法。

然后,自己重新创建一个viewcontroller,然后跳转到这个新建的viewcontroller,发现并没有崩溃,看来不是项目的问题,问题还是在于各个页面的代码。

最后,只能选择一个相对简单的viewcontroller,然后代码全部注释掉,然后一行一行打开运行。直到

self.navigationItem.title = @"关于我们";

程序崩溃。。。what? excuse me?这是什么意思,我设置一个title有问题吗?

然后注视掉这一行,打开其他代码,程序稳定运行。。。

好吧,看来真的就是这个东西在搞鬼。

  UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 45)];
    label.text = @"关于我们";
    label.font = [UIFont systemFontOfSize:19];
    label.textAlignment = NSTextAlignmentCenter;
    label.center = CGPointMake(kScreenWidth/2.0, 25);
    label.textColor = [UIColor whiteColor];
    [self.view.addSubview: label];

改成这个,运行,程序正常。。。

后来发现隐藏navigation的时候就

[self.view.addSubview: label]

如果没有隐藏就使用

self.navigationItem.titleView = label;
这真是个奇葩的问题。。。不过好在找到了问题


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Lu_Ca/article/details/80350939
个人分类: iOS日常问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭