1

表示するビューを返す関数があります。私が使用する場合:

UIViewController* vcontroller= [storyboard instantiateViewControllerWithIdentifier:@"meterEnlarge"];
return vcontroller.view;

景色が見えます。しかし、私がするとき:

ViewController_Meter_Enlarge_iPad* controller = [[ViewController_Meter_Enlarge_iPad alloc]init];
return controller.view;

景色が見えません。VC のプロパティを変更する必要があることを考えると、2 番目のオプションが重要です ([controller setxyz] などを呼び出し始めるため)。VC からビューを戻すにはどうすればよいですか?

4

2 に答える 2

4

ビュー コントローラを作成して NIB ファイルから初期化しない限り、viewは設定されません。

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

参考

(または手動でビューをビュー コントローラーに割り当てます)。

于 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 に答える