Ios 如何将UIView中的事件控制传递给Iphone中的UIView控制器?
场景: 我有一个日历控件作为UIview,当我单击视图的日期按钮时,我希望导航到其他UIview控制器,但当我使用:Ios 如何将UIView中的事件控制传递给Iphone中的UIView控制器?,ios,iphone,objective-c,uiview,Ios,Iphone,Objective C,Uiview,场景: 我有一个日历控件作为UIview,当我单击视图的日期按钮时,我希望导航到其他UIview控制器,但当我使用: HomeView *scrhome=[[HomeView alloc]init]; [self presentViewController:scrhome animated:YES completion:nil]; 它给出了一个错误: HomeView不在内存堆栈中 提前感谢。presentViewController:希望将viewcontroller作为一个参数,您正在此处
HomeView *scrhome=[[HomeView alloc]init];
[self presentViewController:scrhome animated:YES completion:nil];
它给出了一个错误:
HomeView不在内存堆栈中
提前感谢。presentViewController:希望将viewcontroller作为一个参数,您正在此处传递一个视图。为视图设置一个控制器,并将其传递到presentViewController:animated:由于schrome是UIView而不是视图控制器,因此无法传递参数,因为所需类型是uiviewcontroller。您可以在控制器内使用此uiview,并且该viewcontroller的对象可以作为参数传递。您可以使用观察者模式 请参见,您可以使用NSNotificationCenter创建观察者:
[[NSNotificationCenter defaultCenter]addObserver:自选择器:@selector(notify)name:@“事件”对象:nil]代码>//1
将其放在视图控制器中
以及视图控制器中的选择器,如:
-(void)notify
{
//2
HomeView *scrhome=[[HomeView alloc]init];
[self presentViewController:scrhome animated:YES completion:nil];
}
在您的视图中,在希望引发事件的条件下编写:
[[NSNotificationCenter defaultCenter]postNotificationName:@“事件”对象:nil]代码>//3
你准备好出发了
您可以使用object:yourobject代替nil@//1
及
如果您想获得一些属性来处理
它对我来说很好。HomeView不是视图,而是视图控制器。
id=sender;