iPhone IOS5 Storyboard, how to load a UIViewContro

2019-03-11 02:11发布

I have some UIViewControllers from my old iOS4 project, they are using .xib, created in interface builder.

My new project, built for iOS5, uses storyboards.

I'm trying to add a UIViewController to the storyboard, but have it use a custom XIB that I already have. I've set the controller's identity in the indentity inspector (in interface builder), but am not sure how to ask that controller to load a custom .xib.

Any help is appreciated!

PS. Up to date I was able to get around this by creating a "wrapper" class for the storyboard purposes, and have that class have another UIViewController. But this kinda defeats the whole point of a storyboard.

3条回答
【Aperson】
2楼-- · 2019-03-11 02:20

You cannot mix xibs and storyboards in your project -- it's one of the other, I'm afraid.

查看更多
迷人小祖宗
3楼-- · 2019-03-11 02:41

Mike K's answer is false.

While mixing XIBs and Storyboards doesn't really solve Alex's problem, it is quite possible to do within the same project.

See: https://stackoverflow.com/a/8516479/1309238 re: loading a second storyboard.

I'm not sure if including a "Main Storyboard" in your Target Summary is advisable if you plan to do this, but if you've loaded a XIB instead of a storyboard to begin with, you can modify the code linked above to load the storyboard after the XIB.

I'm not sure if you can jump into the middle of a storyboard from a XIB, which may have been what Mike meant.

查看更多
祖国的老花朵
4楼-- · 2019-03-11 02:45

You could copy the contents of the xib into the storyboard and then instantiate it using:

- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier

after setting the identifier on it. If you need the instance of the storyboard you can get it this way:

[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
查看更多
登录 后发表回答