[英]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.