我正在尝试从xCode 6模板开发一个主 - 细节iOS应用程序(仅限iPad).iOS 8运行良好,但在iOS 7.0或7.1上运行会在运行时发生崩溃,我评论过:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
// this line throws a "[MasterViewController topViewController]: unrecognized selector sent to instance 0x796dde90"
navigationController.topViewController.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem;
splitViewController.delegate = self;
return YES;
}
重现错误:
打开xCode 6
文件>新建>项目
在"iOS应用程序"下选择"主 - 详细信息应用程序"
将项目目标更改为7.0
在模拟器或设备上运行
我调查过,iOS 7和iOS 8上的对象类型似乎不同:
在iOS8上,self.window.rootViewController是一个UISplitViewController
在iOS7上,self.window.rootViewController是第一个UINavigationController(左)
为什么会这样?