我有两个视图控制器。 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];
我没有经历循环。
虽然这解决了这种情况,但更改视图的问题(没有导航控制器)仍然存在