以非模态的方式呈现UIViewController?

5

我有一个UIViewController(称为A),但有时需要显示第二个UIViewController(称为B),因为我不想干扰A中的UI操作(A仍然需要响应一些触摸操作),所以有没有方法以非模态方式显示B?

6个回答

3

尝试这个:

[self addChildViewController:viewControllerB];
[self.view addSubview:viewControllerB.view];

2

以下是如何以非模态方式在Swift中显示视图控制器的方法:

let newController = RegisterController()
self.addChildViewController(newController)
self.view.addSubview(newController.view)

以非模态的方式移除视图:

view.removeFromSuperview()

1

1

0

您可以这样使用

addChildViewController

-

- (void)loadContentView
    {
        CGFloat ht               = 0; // height you want to change;
        HomeAdsTVC_iPhone   *vc1 = [[HomeAdsTVC_iPhone alloc] init];
        [self addChildViewController:vc1];
        CGRect frame             = self.view.bounds;
        frame.origin.y           = ht;
        frame.size.height        -= ht;
        vc1.view.frame           = self.view.bounds;
        [self.view addSubview:vc1.view];
        [vc1 didMoveToParentViewController:self];
    }

0

我猜你在谈论如何在iPhone上以模态方式呈现视图控制器。在iPad上,为了完整起见,在示例中有更多的方法可以以模态方式显示不填充整个屏幕的视图控制器。

你可以使用UIViewController容器来实现这一点。 总的来说,只需将一个视图控制器作为另一个视图控制器的子级添加,同时将其视图添加到层次结构中即可。 请查看obj.io上的教程。这就是@Justafinger建议的内容,但完整性要比@Justafinger忘记了一些重要的调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接