我有一个返回要显示的视图的函数。当我使用时:
UIViewController* vcontroller= [storyboard instantiateViewControllerWithIdentifier:@"meterEnlarge"];
return vcontroller.view;
我看到了这个观点。但是,当我这样做时:
ViewController_Meter_Enlarge_iPad* controller = [[ViewController_Meter_Enlarge_iPad alloc]init];
return controller.view;
我没有看到这个观点。考虑到我需要修改VC上的属性,第二个选项对我来说很重要(因为我开始调用[controller setxyz]等)。如何从VC返回视图?
答案 0 :(得分:4)
除非您创建视图控制器并从NIB文件初始化它,否则不会设置view
:
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle
(或手动将视图分配给视图控制器)。
答案 1 :(得分:2)
我认为您希望第一个视图控制器(故事板中的视图控制器)属于您的自定义视图控制器类?在这种情况下,您可以从故事板中检查返回给您的视图控制器的实际类,如果它与您想要的类匹配,则进行自定义设置:
UIViewController *storyboardVC =
[storyboard instantiateViewControllerWithIdentifier:@"meterEnlarge"];
if ([storyboardVC isKindOfClass:[ViewController_Meter_Enlarge_iPad class]]) {
ViewController_Meter_Enlarge_iPad *customVC =
(ViewController_Meter_Enlarge_iPad *)storyboardVC;
[customVC setXYZ:@"foo"];
}