iOS:在viewDidLoad不平衡调用上循环

时间:2014-11-27 13:28:29

标签: ios objective-c

我有两个视图控制器。 ViewController& Next

ViewContoller.m

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    bool static check = FALSE;

    if(!check){
        check = true;
        [self changeView];
    }
}


-(void)changeView{
    dispatch_async(dispatch_get_main_queue(), ^{

        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        Next *viewController = (Next *)[storyboard instantiateViewControllerWithIdentifier:@"next"];

        [self presentViewController:viewController animated:YES completion:nil];
    });
}

Next.m 只不过是视图的xcode样板代码。

当我按上述方式执行此操作时,我收到此输出:

2014-11-27 13:20:21.005 changeView[1804:72014] Unbalanced calls to begin/end appearance transitions for <ViewController: 0x7fdd80f41e20>.

您会注意到我在viewDidLoad中有一个静态布尔值。如果没有这个,viewDidLoad被无限调用,导致Next视图的动画循环出现在ViewController视图的顶部。

我几乎100%确定我不应该实现布尔值来阻止循环,但这是我能做到的唯一方法。怎么办?

更新<!/ b>的 当我嵌入导航控制器时,使用[self.navigationController presentViewController:viewController animated:NO completion:nil];我没有经历循环。

虽然这解决了这种情况,但更改视图的问题(没有导航控制器)仍然存在

0 个答案:

没有答案