一种可能的方法是使用 SecondViewController 的视图的 superView。这是一种非常直接的方式。
[[self.view superview] insertSubview:theView aboveSubview:self.view];
另一种方法是使用委托。您可以在 SecondViewController 中声明一个委托,例如
@protocol SecondViewControllerDelegate : NSObject
{
- (void)requestInsertView:(UIView*)view aboveView:(UIView*)baseView;
}
@interface SecondViewController <...>
@property (nonatomic, assign) id<SecondViewControllerDelegate>superViewDelegate;
@end;
并修改FirstViewController的声明实现SecondViewControllerDelegate
@interface FirstViewController <SecondViewControllerDelegate, ...>
@implement FirstViewController
- (void)requestInsertView:(UIView*)view aboveView:(UIView*)baseView
{
[self.view insertView:view aboveSubview:baseView];
}
@end;
创建 SecondViewController 后,将其 superViewDelegate 设置为 FirstViewController 的实例。
在您需要从 SecondViewController 添加视图的地方,您可以调用
[self.superViewDelegate requestInsertView:view aboveView:self.view];