我遇到了这种情况:我有一个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中,它似乎可以正常工作,但我担心我会多次将相同的视图添加到另一个上,是不是有更好的方法来执行此操作?
答案 0 :(得分:0)
-(void)viewWillAppear {
[self.view addSubview:sharedViewController.view];
}
-(void)viewWillDisappear {
[sharedViewController.view removeFromSuperview];
}
这应该有效。 但如果你只使用视图,你确定它必须是一个共享的UIViewController吗?为什么不只是一个共享的UIView?