1

我遇到了这种行为:我有一个 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 中,它似乎可以工作,但我担心我会多次将相同的视图添加到另一个上,难道没有更好的方法吗?

4

1 回答 1

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

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

于 2012-06-06T07:26:10.873 回答