[英]Present UIViewController in non-modal way?
我有一个 UIViewController(称为 A),但有时我需要显示第二个 UIViewController(称为 B),因为我不想打扰 A 中的 UI 操作(A 仍然需要响应一些触摸操作),所以有什么方法以非模态方式显示B?
尝试这个 :
[self addChildViewController:viewControllerB];
[self.view addSubview:viewControllerB.view];
您可以轻松地将任何viewcontroller嵌入到另一个中。 看看这个:
您可以将B嵌入A中作为子视图。
有关详尽说明,请参阅http://subjective-objective-c.blogspot.co.uk/2011/08/writing-high-quality-view-controller.html ,有关简单演示,请查看以下代码: https:/ /github.com/toolmanGitHub/stackedViewControllers
您可以
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忘记了一些重要的电话。
以下是在Swift中以非模态方式显示视图控制器的方法:
let newController = RegisterController()
self.addChildViewController(newController)
self.view.addSubview(newController.view)
以非模态方式删除视图:
view.removeFromSuperview()
非模态你是什么意思? 将控制器显示为非模态的基本方法是:
[self presentViewController:myController animated:YES completion:nil];
或者使用完成处理程序
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.