逻辑是这样的:
app委托触发主视图控制器(UIViewController,没什么特别的)。代码检查是否需要转到不同的viewcontroller 而不显示当前的。我使用代码:
let vc = storyboard!.instantiateViewControllerWithIdentifier("NextViewController")
self.presentViewController(vc, animated: true, completion: nil)
我可以在viewDidAppear中获得正确的行为,因为我们已经在显示内容,所以为时已晚。在viewWillAppear中移动代码会抱怨vc不在视图层次结构中。
最好的方法是什么?我应该开始使用导航控制器吗?
答案 0 :(得分:1)
您是否尝试过检查您的应用代理并执行此类操作? :
let vc = storyboard!.instantiateViewControllerWithIdentifier("NextViewController")
self.window.setRootViewController(vc)
答案 1 :(得分:0)
如果你决定使用UINavigationController,你可以在第一个VC的viewDidLoad:
方法中执行检查,并在没有动画的情况下执行segue到下一个视图控制器。
这样的segue就像这样做
·H:
#import <UIKit/UIKit.h>
@interface PushNoAnimationSegue : UIStoryboardSegue
@end
的.m:
#import "PushNoAnimationSegue.h"
@implementation PushNoAnimationSegue
- (void)perform{
[[[self sourceViewController] navigationController] pushViewController:[self destinationViewController] animated:NO];
}
@end