私のアプリの最初の画面はログイン画面で構成されています。私はAppDelegate
からログイン画面を表示しています。 ログイン画面が表示され、シミュレータの次の画面に移動できます。しかし、それはデバイス上で動作しません。dismissViewControllerAnimated issue
デバイスでは、メイン画面が1秒間表示され、ログイン画面が表示されます。私は[self.window.rootViewController dismissViewControllerAnimated:YES completion:nil];
と[self.window.rootViewController presentViewController:self.navigationController animated:YES completion:nil];
の順番を変更しようとしましたが、どちらもうまくいきません。
私はiOS 9.0 iPad(デバイス)で動作しています。しかし、シミュレータではすべてうまくいくようです。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = nil;
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self->_loginViewController = [[LoginViewController alloc] initWithNibName:nil bundle:nil];
self.window.rootViewController = nil;
self.window.rootViewController = self->_loginViewController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)loginUser {
if([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) {
//load xib for iPad
mainVC = [[MainVC alloc] initWithNibName:@"MainVC~ipad" bundle:nil];
} else if([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
//load xib for iPhone
mainVC = [[MainVC alloc] initWithNibName:@"MainVC~iphone" bundle:nil];
}
self.navigationController = nil;
self.navigationController = [[UINavigationController alloc] initWithRootViewController:mainVC];
dispatch_async(dispatch_get_main_queue(),^ {
// [self.window.rootViewController.navigationController popViewControllerAnimated:YES]; //not working
[self.window.rootViewController dismissViewControllerAnimated:YES completion:nil]; //not working
[self.window.rootViewController presentViewController:self.navigationController animated:YES completion:nil];
//not working
// [self.window.rootViewController.presentingViewController dismissViewControllerAnimated:YES completion:^{
// [self.window.rootViewController presentViewController:self.navigationController animated:YES completion:nil];
// }];
});
}
私はこの '[self.windowを削除しました。これを保持していたのは、dispatch_async(dispatch_get_main_queue()、^ { [self.window.rootViewController presentViewController:self.navigationController animated:YES complet]イオン:nil]; }); '。しかし、それはまだ役に立たない。 – Swift