所以我注意到我的程序中有一些非常奇怪的行为。这是一个简化的代码段,然后我将解释构建和运行时会发生什么。
-(void)viewDidLoad {
[super viewDidLoad];
...
if (self.sampleBool) {
[self performSegueWithIdentifier:@"mySegue" sender:self];
}
else {
// do stuff
}
}
...
-(IBAction)myMethod:(UITapGestureRecognizer*)sender {
...
[self performSegueWithIdentifier:@"mySegue" sender:self];
}
segue通过UITapGestureRecognizer触发了 - 所以我知道segue是正确链接的。但是,当self.sampleBool为true且在viewDidLoad中调用performSegueWithIdentifier时,segue不会触发。
有人有任何猜测吗?任何帮助或建议表示赞赏。
由于
答案 0 :(得分:0)
尝试使用viewWillAppear
或viewDidAppear
事件,看看它是否有效。我的猜测是viewDidload
中的segues可能不相关,因为事情没有完全连线。
另一方面,这里有设计问题吗?如果你的情况属实,那么这种情况应该发生吗?也许你可以在调用该视图加载之前进一步上游测试。
答案 1 :(得分:0)
如果你试图在ViewDidLoad中推送另一个ViewController,你会遇到问题,因为在viewDidLoad中,viewcontroller还没有准备好!简单来说就是尝试使用viewWillAppear或viewDidappear。