我有一个UIViewController(称为A),但有时需要显示第二个UIViewController(称为B),因为我不想干扰A中的UI操作(A仍然需要响应一些触摸操作),所以有没有方法以非模态方式显示B?
我有一个UIViewController(称为A),但有时需要显示第二个UIViewController(称为B),因为我不想干扰A中的UI操作(A仍然需要响应一些触摸操作),所以有没有方法以非模态方式显示B?
尝试这个:
[self addChildViewController:viewControllerB];
[self.view addSubview:viewControllerB.view];
以下是如何以非模态方式在Swift中显示视图控制器的方法:
let newController = RegisterController()
self.addChildViewController(newController)
self.view.addSubview(newController.view)
view.removeFromSuperview()
iOS Nested View Controllers view inside UIViewController's view?
您可以这样使用
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];
}
我猜你在谈论如何在iPhone上以模态方式呈现视图控制器。在iPad上,为了完整起见,在示例中有更多的方法可以以模态方式显示不填充整个屏幕的视图控制器。
你可以使用UIViewController容器来实现这一点。 总的来说,只需将一个视图控制器作为另一个视图控制器的子级添加,同时将其视图添加到层次结构中即可。 请查看obj.io上的教程。这就是@Justafinger建议的内容,但完整性要比@Justafinger忘记了一些重要的调用。