Sto provando a sviluppare un'applicazione iOS di dettaglio master (solo iPad) dal modello xCode 6. Funziona bene con iOS 8, ma in esecuzione su iOS 7.0 o 7.1 produce un incidente in fase di esecuzione in cui ho commentato:Il modello di applicazione iOS principale-dettaglio da xCode 6 non funziona su 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;
}
per riprodurre il bug:
- Aprire xCode 6
- File> Nuovo> progetto
- Scegliere "master-Details Application" sotto "applicazione iOS"
- Cambio di destinazione del progetto per 7,0
- Run su emulatore o dispositivo
ho indagato e sembra che tipi di oggetto differisce su iOS 7 e iOS 8:
- Su iOS 8, self.window.rootViewController è un UISplitViewController
- In iOS7, auto .window.rootViewController è il primo UINavigationController (a sinistra)
Perché questo comportamento?
Stai provando su iPhone o iPad? –