热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么self.splitViewController==nil?

如何解决《为什么self.splitViewController==nil?》经验,为你挑选了1个好方法。

我使用Xcode 6的Master Detail Application模板创建了一个新的iOS 8项目.我没有以任何方式更改代码.

在设置断点DetailViewController.m并检查self.splitViewController属性时,如下面的屏幕截图所示,它将返回nil.

在此输入图像描述

这是为什么?

根据Apple UISplitViewController 文档,self.splitViewController应该返回最近的SplitViewController:

如果接收器或其祖先之一是拆分视图控制器的子级,则此属性包含拥有的拆分视图控制器.如果视图控制器未嵌入拆分视图控制器中,则此属性为nil.

Rory McKinne.. 7

不知道你是否想过这个问题,但我只是遇到了这个问题并发现了什么错误,看起来和你的情况类似.

直到viewDidLoad之后才会配置splitViewController属性.如果意外使用它的代码在viewDidLoad之前被触发,那么该值将为nil.

我在你的代码示例中注意到configureView是从setDetailItem调用的.如果这是从prepareForSegue调用的,那么viewDidLoad将不会发生,导致configureView中的splitViewController属性值为nil.所以代码必须在[super viewDidLoad]完成之后运行.



1> Rory McKinne..:

不知道你是否想过这个问题,但我只是遇到了这个问题并发现了什么错误,看起来和你的情况类似.

直到viewDidLoad之后才会配置splitViewController属性.如果意外使用它的代码在viewDidLoad之前被触发,那么该值将为nil.

我在你的代码示例中注意到configureView是从setDetailItem调用的.如果这是从prepareForSegue调用的,那么viewDidLoad将不会发生,导致configureView中的splitViewController属性值为nil.所以代码必须在[super viewDidLoad]完成之后运行.


推荐阅读
author-avatar
别被风景迷了眼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有