0

所以我注意到我的程序中有一些非常奇怪的行为。这是一个简化的代码片段,然后我将解释构建和运行时会发生什么。

-(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 不会触发。

有人有任何猜测吗?任何帮助或建议表示赞赏。

谢谢

4

2 回答 2

0

尝试使用viewWillAppearorviewDidAppear事件,看看它是否有效。我的猜测是,viewDidload由于事情并未完全连接起来,因此可能不相关。

另一方面,这里有设计问题吗?如果您的情况属实,是否应该发生这种情况?也许您可以在调用该视图加载之前在上游进一步进行测试。

于 2012-06-27T21:12:59.197 回答
0

如果你尝试在 ViewDidLoad 中推送另一个 ViewController,你会遇到问题,因为在 viewDidLoad 中,viewcontroller 还没有准备好!简单的方法是尝试使用 viewWillAppear 或 viewDidappear。

于 2012-06-27T22:05:01.277 回答