我正在尝试开发一个主从关系的iOS应用程序(仅限iPad), 从xCode 6的模板开始. 在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上对象类型不同:
- iOS 8上,self.window.rootViewController是一个UISplitViewController
- iOS 7上,self.window.rootViewController是第一个UINavigationController(左侧)
为什么会出现这种情况?