vor*_*max 29 iphone storyboard ipad ios
我有一个以导航控制器开始的应用程序.该导航控制器可以打开模态视图控制器:
- (void)openModalController:(id)sender
{
[self performSegueWithIdentifier:@"SegueIdentifier"];
}
Run Code Online (Sandbox Code Playgroud)
但是当用户使用url方案打开应用程序时,我想在打开模态控制器的情况下显示应用程序.所以我添加了一些方法并尝试:
// Controller
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated]; // animated == NO in initial loading
if (_shouldOpenModalController) {
[self openModalController:nil];
}
}
- (void)setShouldOpenModalController:(BOOL)flag
{
_shouldOpenModalController = flag;
}
// AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if (launchOptions) {
UINavigationController *nc = (UINavigationController *)self.window.rootViewController;
MyViewController *c = (MyViewController *)[ns topViewController];
[c setShouldOpenModalController];
}
}
Run Code Online (Sandbox Code Playgroud)
但是这里有一个问题:openModalController:我在故事板中设置了过渡动画.如何在没有动画的情况下完成?这项任务还有另一种方法吗?
Gor*_*ove 42
在Storyboard中复制您的segue,并为第二个提供不同的ID.
然后,您可以更改新版本中的转换.
kei*_*ics 29
self.performSegueWithIdentifier("loginSegue",sender: nil)
Run Code Online (Sandbox Code Playgroud)
我正在使用此代码段来请求授权viewDidLoad:
[UIView setAnimationsEnabled:NO];
self.view.hidden = YES;
[self performSegueWithIdentifier:@"segue_auth" sender:self];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.4 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[UIView setAnimationsEnabled:YES];
self.view.hidden = NO;
});
Run Code Online (Sandbox Code Playgroud)
授权后,我可以根据需要设置后向过渡动画.
还有一种方法
YourViewController *aYourViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"aYourViewControllerIdentifier"];
[self.navigationController pushViewController:aYourViewController animated:NO];
Run Code Online (Sandbox Code Playgroud)
并@"aYourViewControllerIdentifier"在故事板中添加到视图控制器.