我正在搜索是否有办法同时提供两个或更多控制器。
与导航控制器类似:https://stackoverflow.com/a/28464115/5790492
但对于模态控制器。
现在我只在第一个控制器中执行presentViewController:animated:false
,在第二个控制器中执行另一个presentViewController:animated:true
。但得到错误:
Unbalanced calls to begin/end appearance transitions for
我在第二个动画之前看到第一个ViewController。这不漂亮。如果我使用方法,那将是完美的:
- (void)presentInController:(UIViewController *)current controllerA:(UIViewController *)controllerA controllerB:(UIViewController *)controllerB;
在屏幕中 - 将切换到带有动画的controllerB。并且有可能将他解雇为控制员A.
答案 0 :(得分:1)
使用ContainerView是我能想到的一种方式。基本上你拖动2个ContainerView,每个都指向你想要通过“嵌入”显示的2个Viewcontroller(通常你会这样做)。实际上没有代码,因为它直接从IB中拖动ContainerView对象并直接进入Storyboard中的主视图。
答案 1 :(得分:-1)
您可以使用 GCD 来避免Unbalanced calls to begin/end appearance transitions for
错误。
//delayInSeconds
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//code to be executed after a specified delay
UIViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewControllerName"];
[self presentViewController:vc animated:false completion:nil];
});
根据需要更改delayInSeconds。
可能是这样的,