我有一个UIViewController(称为A),但有时我需要显示第二个UIViewController(称为B),因为我不想打扰A中的UI动作(仍然需要响应一些触摸动作),所以是有没有方法以非模态方式显示B?
答案 0 :(得分:2)
试试这个:
[self addChildViewController:viewControllerB];
[self.view addSubview:viewControllerB.view];
答案 1 :(得分:1)
您可以轻松地将任何viewcontroller嵌入到另一个中。看看:
iOS Nested View Controllers view inside UIViewController's view?
答案 2 :(得分:1)
你可以
像这样 -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];
}
答案 3 :(得分:0)
我猜你在谈论在iPhone中以模态方式呈现视图控制器。在iPad中,仅为了示例中的完整性,您可以通过更多方式以模态方式显示视图控制器,而不会填满整个屏幕。
您可以使用UIViewController包含。 总而言之,它只是将视图控制器添加为另一个视图控制器,同时将其视图添加到层次结构中。 在obj.io查看本教程。这就是@Justafinger的建议,但完全是因为@Justafinger忘记了一些重要的电话。
答案 4 :(得分:0)
以下是如何在Swift中以非模态方式显示视图控制器的方法:
let newController = RegisterController()
self.addChildViewController(newController)
self.view.addSubview(newController.view)
以非模态方式删除视图:
view.removeFromSuperview()
答案 5 :(得分:-2)
非模态你的意思是什么? 将控制器显示为非模态的基本方法是:
[self presentViewController:myController animated:YES completion:nil];
或使用完成处理程序