从ViewController返回视图

时间:2013-02-28 15:34:23

标签: iphone ios objective-c xcode

我有一个返回要显示的视图的函数。当我使用时:

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返回视图?

2 个答案:

答案 0 :(得分:4)

除非您创建视图控制器并从NIB文件初始化它,否则不会设置view

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle

reference

(或手动将视图分配给视图控制器)。

答案 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"];
}