我有一个UIViewController
这是在故事板创建,并已分配了一个故事板ID。 这UIViewController
是在代码的不同位置实例化,并为此它没有任何意义,从各种不同的位置创建塞格斯。
视图控制器需要被包含在一个UINavigationController为了因为它使用了各种导航栏项,并且可以推额外视图控制器正常工作。
视图控制器从代码实例如下:
// some where in code that needs to present the custom view controller
UIViewController *viewControllerToPresent = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
[self.viewController presentViewController: viewControllerToPresent animated:YES];
问题是,视图控制器不包含在导航控制器从故事板的预期。 我已经试过含分配UINavigationController的故事板ID的,但导致在现有代码的问题prepareForSegue
其预期的实例CustomViewController
最明显的选项来解决,这将是呈现前添加一个UINavigationController的创作CustomViewController
:
UIViewController *viewControllerToPresent = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController: viewControllerToPresent];
[self.viewController presentViewController: nav animated:YES];
但是,这并不解决是因为从故事板的导航项不正确添加的问题。
什么对我来说似乎更合理,是有CustomViewController
继承UINavigationController
和建立在故事板整个事情使得自定义视图控制器都包含自己的导航栏。
我见过的类,如UIImagePickerController
从继承UINavigationController
,我相信正是这种情况下,他们试图解决的问题。
问题是,当我改变CustomViewController要继承UINavigationController
,当视图控制器从故事板ID实例化,视图返回空。 其实,故事情节不建立视图的。
这是一些可以解决吗?