Tôi đang cố gắng phát triển ứng dụng iOS chi tiết chính (chỉ dành cho iPad) từ mẫu xCode 6. Nó chạy tốt với iOS 8 nhưng chạy nó trên iOS 7.0 hoặc 7.1 tạo ra một vụ tai nạn lúc chạy-thời gian mà tôi đã nhận xét:Mẫu ứng dụng Master-Detail iOS từ xCode 6 không chạy trên iOS 7
- (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;
}
Để tái tạo các lỗi:
- Mở Xcode 6
- file> New> Project
- Chọn "Master-Chi tiết ứng dụng" bên dưới "ứng dụng iOS"
- Thay đổi mục tiêu của dự án để 7.0
- Run trên giả lập hoặc thiết bị
tôi điều tra và có vẻ như rằng các loại đối tượng khác trên iOS 7 và iOS 8:
- On iOS8, self.window.rootViewController là một UISplitViewController
- On iOS7, tự .window.rootViewController là UINavigationController đầu tiên (bên trái)
Tại sao lại có hành vi này?
Bạn có đang thử nghiệm trên iPhone hoặc iPad không? –