我想在每个UIView
中使用一个UIViewControllers
。主UI设计有Storyboard。额外的UIView
有自己的XIB。
因此,我不想手动将额外UIView
的用户界面放入每个UIViewController
,并在每个UIViewController
上连接出口。所以我想也许有可能在一个XIB中创建UI和连接,然后以某种方式重用它。这可能吗?如果是的话怎么样?
答案 0 :(得分:1)
只需将此行添加到ViewControllers即可获得对自定义视图的引用:
YourView *yourView = (YourView *)[[NSBundle mainBundle] loadNibNamed:@"YourXIB"
owner:self
options:nil].firstObject;
但是,由于您希望在所有ViewControllers中都使用此自定义视图,因此我建议您使用一个包含上述行的UIViewController
子类,然后为项目中的每个附加子类创建UIViewController
子类。这样你就可以在每个ViewController中引用你的自定义视图,但只需要写一次这个行。
答案 1 :(得分:0)
我认为可以在函数initWithNibName:
中保留相同的名称,因此您可以在您的某个控制器中执行此操作:
UIViewController *oneViewController = [[FirstViewControllerClass alloc] initWithNibName:@"MyXIBThatWillStayTheSame" bundle:nil];
[self presentModalViewController:oneViewController animated:YES];
并在另一个中执行此操作:
UIViewController *anotherViewController = [[AnotherViewControllerClass alloc] initWithNibName:@"MyXIBThatWillStayTheSame" bundle:nil];
[self presentModalViewController:anotherViewController animated:YES];