一次出现两个或多个ViewControllers IOS

时间:2017-01-11 10:35:41

标签: ios objective-c

我正在搜索是否有办法同时提供两个或更多控制器。

与导航控制器类似: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.

2 个答案:

答案 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。

可能是这样的,

  • presentViewController:动画:假
  • 另一个presentViewController:animated:true, GCD 延迟