3

下面是使用带有单独 xib 视图的 initWithNibName 的示例:

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

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

IE :

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

任何帮助深表感谢。谢谢,戴夫

4

3 回答 3

14

您可以在情节提要中给控制器一个Identifier,然后使用它...

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

只是为了补充这个......

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

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

然后系统将查找一个名为的 xib 文件MyViewController.xib并使用它来初始化对象,并且只有在 xib 文件不存在时才回退到在代码中执行它。

于 2013-06-04T09:05:43.267 回答
4

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

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
    MyNewViewController *myVC = (MyNewViewController *)[storyboard instantiateViewControllerWithIdentifier:@"myViewCont"];
于 2013-06-04T09:07:02.920 回答
2
UIStoryboard *stryBoard=[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
TerminalViewController *ctrl = [stryBoard instantiateViewControllerWithIdentifier:@"ControllerView"];
于 2013-06-04T09:07:32.583 回答