Objective c 隐藏/显示其他类中的视图
我有以下情况:Objective c 隐藏/显示其他类中的视图,objective-c,ios,Objective C,Ios,我有以下情况: SecondViewController位于FirstViewController内。现在,我想将另一个子类添加到FirstViewController,但来自secondViewController类,如图所示: 我一直在寻找,我认为这是不可能的。我已经尝试实例化FirstViewController,访问“视图到子视图”并添加为子视图,但这不起作用: FirstViewController *viewController = [[FirstViewController al
SecondViewController
位于FirstViewController
内。现在,我想将另一个子类添加到FirstViewController
,但来自secondViewController
类,如图所示:
我一直在寻找,我认为这是不可能的。我已经尝试实例化FirstViewController,访问“视图到子视图”并添加为子视图,但这不起作用:
FirstViewController *viewController = [[FirstViewController alloc] init];
[self.view addSubview:[viewController viewToAddAsSubView]];
有什么建议/解决方案吗
谢谢 这实际上可以通过NSNotificationCenter实现。示例如下:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(METHOD:) name:@"LISTEN_TO_VIEW_2" object:nil];
上面的代码应该放在视图1中,以便“侦听”视图2,从而向其发送一个通知,通知您应该执行视图1中的方法,以便在视图1中添加/编辑您想要的任何内容
[[NSNotificationCenter defaultCenter] postNotificationName:@"LISTEN_TO_VIEW_2" object:nil];
上述代码将向view 1发送通知。然后,在视图1中,您将有如下方法:
-(void)METHOD:(id)sender {
//do something here
}
这实际上可以通过NSNotificationCenter实现。示例如下:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(METHOD:) name:@"LISTEN_TO_VIEW_2" object:nil];
上面的代码应该放在视图1中,以便“侦听”视图2,从而向其发送一个通知,通知您应该执行视图1中的方法,以便在视图1中添加/编辑您想要的任何内容
[[NSNotificationCenter defaultCenter] postNotificationName:@"LISTEN_TO_VIEW_2" object:nil];
上述代码将向view 1发送通知。然后,在视图1中,您将有如下方法:
-(void)METHOD:(id)sender {
//do something here
}
一种可能的方法是使用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;
一种可能的方法是使用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;
谢谢你,布雷登!我非常感谢你对我的帮助!谢谢你,布雷登!我非常感谢你对我的帮助!谢谢你的回答,林登,但是布雷登用简单的方式回答。谢谢你的回答,林登,但是布雷登用简单的方式回答。