如果iPad
邮件应用中没有设置帐户,它会打开邮件客户端进行选择吗?选择邮件客户端后,视图控制器将以模态方式关闭,并显示UISplitViewController
。
我想要使用iPad
应用程序,我必须首先显示ViewController
并将其解除以显示UISpiltViewController
。我想知道,它是如何完成的。
我最初只能通过将其设置为rootView控制器来共进午餐UISplitViewController
。这是我的代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
PopViewController * menuVC = [[PopViewController alloc] initWithStyle:UITableViewStyleGrouped];
UINavigationController * navMenue = [[UINavigationController alloc] initWithRootViewController:menuVC];
DetialViewController *delainVC =[[DetialViewController alloc] init];
UINavigationController * navdetail = [[UINavigationController alloc] initWithRootViewController:delainVC];
UISplitViewController *splitVC = [[UISplitViewController alloc] init];
splitVC.viewControllers = [NSArray arrayWithObjects:navMenue,navdetail, nil];
self.window.rootViewController = splitVC;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
我了解到你必须始终将UISplitViewController
设置为rootViewController。但我的目标是在UISplitViewController
之前打开一个ViewController。当没有帐户设置时,与iPad
邮件应用完全相同。
答案 0 :(得分:2)
因为 - (void)viewDidLoad之前被调用 - (void)viewDidAppear:(BOOL)动画。在视图中打开没有动画的模态视图控制器时执行加载方法。解决了这个问题。而且没有UISplitView控制器的一瞥。下面是代码。此代码应放在detailview控制器中。
- (void)viewDidLoad
{
[super viewDidLoad];
[self checkLogIn];
}
编写了一个函数来检查用户是否已登录
-(void) checkLogIn{
if(notLoggedIn){
ViewController * VC = [[ViewController alloc] init];
[self presentViewController:VC animated:NO completion:nil];
}
}
答案 1 :(得分:1)
如果从详细视图控制器的viewDidAppear方法中显示模态视图控制器(没有动画),那么它将是您看到的第一个。例如,
-(void)viewDidAppear:(BOOL)animated {
if (notLoggedIn) {
UIViewController *modal = [self.storyboard instantiateViewControllerWithIdentifier:@"Blue"];
[self presentViewController:modal animated:NO completion:nil];
}
}