Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 隐藏/显示其他类中的视图_Objective C_Ios - Fatal编程技术网

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;

谢谢你,布雷登!我非常感谢你对我的帮助!谢谢你,布雷登!我非常感谢你对我的帮助!谢谢你的回答,林登,但是布雷登用简单的方式回答。谢谢你的回答,林登,但是布雷登用简单的方式回答。