在UIViewControllers之间共享一个视图?第二个viewController从第一个“窃取”视图?

时间:2012-06-06 06:33:45

标签: ios uiview uiviewcontroller

我遇到了这种情况:我有一个UIViewController UIView,我希望在2个或更多UIViewControllers之间共享。

首先,我在AppDelegate中实例共享UIViewController:

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

然后,当我实例化新的UIViewController时,我添加了共享视图控制器视图:

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

在其中我添加了共享视图控制器视图:

- (void)viewDidLoad
{
    [super viewDidLoad];

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

这个工作正常,只要第二个视图控制器 - 即viewController2 - 执行相同的操作,然后viewController2获取视图并且viewController1什么也得不到!

我应用了一个解决方法,将其置于viewWillAppear中,它似乎可以正常工作,但我担心我会多次将相同的视图添加到另一个上,是不是有更好的方法来执行此操作?

1 个答案:

答案 0 :(得分:0)

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

这应该有效。 但如果你只使用视图,你确定它必须是一个共享的UIViewController吗?为什么不只是一个共享的UIView?