小编Gre*_* M.的帖子

来自xCode 6的iOS Master-Detail应用程序模板无法在iOS 7上运行

我正在尝试从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;
}
Run Code Online (Sandbox Code Playgroud)

重现错误:

  • 打开xCode 6
  • 文件>新建>项目
  • 在"iOS应用程序"下选择"主 - 详细信息应用程序"
  • 将项目目标更改为7.0
  • 在模拟器或设备上运行

我调查过,iOS 7和iOS 8上的对象类型似乎不同:

  • 在iOS8上,self.window.rootViewController是一个UISplitViewController
  • 在iOS7上,self.window.rootViewController是第一个UINavigationController(左)

为什么会这样?

xcode objective-c master-detail ipad ios

6
推荐指数
1
解决办法
2464
查看次数

标签 统计

ios ×1

ipad ×1

master-detail ×1

objective-c ×1

xcode ×1