我的初始视图控制器中有以下内容。我检查一下是否设置了URL;如果它是我的观点。
发生这种情况时会有动画。我想避免做segue并直接加载视图而不进行任何动画。 (我希望它看起来像是他们的第一个观点)。有没有办法做到这一点?我需要修改app delegate吗?什么是最佳做法?
- (void) viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.navigationController.toolbarHidden = YES;
self.navigationController.navigationBarHidden = YES;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString* url = [defaults objectForKey:@"storeUrl"];
if (url != nil)
{
[self performSegueWithIdentifier:@"continueToStore" sender:self];
}
}
答案 0 :(得分:1)
这取决于实际持有您的视图的控制器。如果你有导航控制器,你可以这样做:
// remove topmost controller so user won't get back here
[self.navigationController popViewControllerAnimated:NO];
// instantiate your controller (set identifier in storyboard's Identity section)
StoreWebViewController *storeController = [self.storyboard instantiateViewControllerWithIdentifier:@"StoreWebViewController"];
// push new controller on top of a stack
[self.navigationController pushViewController:storeController animated:NO];
使用此代码代替您的segue(请参阅下面的代码)
- (void) viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
// rest of code omitted
...
if (url != nil)
{
// code goes here
}
}
答案 1 :(得分:0)
只需使用
[yourNavigationController pushViewController:new_view_controller animated:NO];
这当然不应该在- (void) viewDidAppear
中完成。