1

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

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

4

2 回答 2

4

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

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

参考

(or manually assign a view to the view controller).

于 2013-02-28T15:40:01.693 回答
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"];
} 
于 2013-02-28T15:38:45.397 回答