将initWithNibName与故事板一起使用

时间:2013-06-04 09:02:48

标签: ios objective-c uiviewcontroller

以下是将initWithNibName与单独的xib视图一起使用的示例:

TerminalViewController *ctrl = [[TerminalViewController alloc]
    initWithNibName:@"ControllerView" bundle:[NSBundle mainBundle]];
ctrl.appDelegate = self;
viewCtrl = ctrl;

但是我需要使用storyboard UI布局来实现它。对于'initWithNibName',我如何指向我的故事板中的视图:

即。 :

    TerminalViewController *ctrl = [[TerminalViewController alloc]     
    initWithNibName:@"STORYBOARD.ControllerView" bundle:[NSBundle mainBundle]];
    ctrl.appDelegate = self;

非常感谢任何帮助。 谢谢, 戴夫

3 个答案:

答案 0 :(得分:14)

您可以在故事板中为控制器提供Identifier,然后使用此...

[self.storyBoard instantiateViewControllerWithIdentifier:@"TheIdentifier"];

只是添加到此...

从xib文件创建UIViewController子类时。如果您有一个名为MyViewController的类和一个名为MyViewController.xib的xib,那么您需要做的就是......

MyViewController *controller = [[MyViewController alloc] init];

系统将查找名为MyViewController.xib的xib文件,并使用该文件初始化对象,并且只有在xib文件不存在的情况下才会回退到代码中。

答案 1 :(得分:4)

获取具有故事板名称的故事板实例并为所有场景设置标识符并获取实例

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
    MyNewViewController *myVC = (MyNewViewController *)[storyboard instantiateViewControllerWithIdentifier:@"myViewCont"];

答案 2 :(得分:2)

UIStoryboard *stryBoard=[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
TerminalViewController *ctrl = [stryBoard instantiateViewControllerWithIdentifier:@"ControllerView"];