靈感來自Scott Sherwood tutorial我有一個UIView裏面的UIViewController通過自定義segues收取不同的UItableviewController/UIViewController。addChildViewController不適合UIViewController
segue.m
- (void) perform {
DashboardViewController *controller = (DashboardViewController *)self.sourceViewController;
UIViewController *dst = (UIViewController *) self.destinationViewController;
for(UIView *view in controller.container.subviews){
[view removeFromSuperview];
}
controller.currentViewController = dst;
[controller addChildViewController:dst];
[controller.container addSubview:dst.view];
}
第一賽格瑞被稱爲在viewDidLoad方法
Controller.m或者
- (void)viewDidLoad {
[super viewDidLoad];
[self performSegueWithIdentifier:@"dashboardNewPon" sender:[self.buttons.subviews objectAtIndex:0]];
}
,屏幕開始以這種方式
其他塞格斯,有這種行爲
我不明白爲什麼,但它肯定不會自動佈局。
感謝
是的,您還需要約束。對不起,我認爲你已經將它們添加到界面構建器中。 –
但是,如何在界面構建器中添加啓動後將添加的約束條件?謝謝! – Vins
現在我看到你添加了dst.view和容器之間的約束,而我正在談論容器和controller.view之間的約束。我不需要爲添加的子視圖添加約束條件,但是如果您這樣做,則您提供的代碼是正確的。 (無論如何,我更新了我的答案,因爲我忽略了容器框架的起源。) –