1

この動作が発生しています。2つ以上のUIViewController間で共有したいUIViewControllerUIViewがあります。

まず、AppDelegateで共有UIViewControllerを次のようにインスタンス化します。

SharedViewController *sharedViewController = [[SharedViewController alloc] init];

次に、新しいUIViewControllerをインスタンス化するときに、共有ビューコントローラービューを追加します。

ViewController1 *viewController1 = [[ViewController1 alloc] init];

その中に、共有ビューコントローラビューを追加します。

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.view addSubview:sharedViewController.view];
}

これは、2番目のビューコントローラー(つまり、viewController2)が同じことを行う限り、正常に機能します。その後、viewController2はビューを取得し、viewController1は何も取得しません。

回避策を適用して、これをviewWillAppearに配置すると、機能するように見えますが、同じビューを別のビューに複数回追加しているのではないかと思います。これを行うためのより良い方法はありませんか?

4

1 に答える 1

0
-(void)viewWillAppear {
    [self.view addSubview:sharedViewController.view];
}
-(void)viewWillDisappear {
    [sharedViewController.view removeFromSuperview];
}

これは機能するはずです。しかし、ビューのみを使用する場合は、共有UIViewControllerである必要がありますか?共有UIViewだけではないのはなぜですか?

于 2012-06-06T07:26:10.873 に答える