Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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 从子视图调用MainViewController方法_Objective C_Iphone - Fatal编程技术网

Objective c 从子视图调用MainViewController方法

Objective c 从子视图调用MainViewController方法,objective-c,iphone,Objective C,Iphone,我在MainViewController中添加了一个子视图。如何从我的子视图调用MainViewController的方法?作为MVC常规代码分解策略的一部分,视图不应该知道该控制器。(如果你不了解MVC,谷歌是你的朋友,这很重要。)如果你想将与视图的交互传递给控制器,你应该制定一个委托协议,创建一个委托接口,在控制器中实现它,并在interface builder中将控制器连接到视图的委托。这听起来可能很多,下面是一个例子: 假设我们有一个日历视图,当有人点击某个日期时,我们想告诉控制器,并询

我在MainViewController中添加了一个子视图。如何从我的子视图调用MainViewController的方法?

作为MVC常规代码分解策略的一部分,视图不应该知道该控制器。(如果你不了解MVC,谷歌是你的朋友,这很重要。)如果你想将与视图的交互传递给控制器,你应该制定一个委托协议,创建一个委托接口,在控制器中实现它,并在interface builder中将控制器连接到视图的委托。这听起来可能很多,下面是一个例子:

假设我们有一个日历视图,当有人点击某个日期时,我们想告诉控制器,并询问我们是否应该将该日期设置为所选日期:

1) 制定委托协议

@protocol CalendarViewDelegate
- (BOOL)shouldSelectDate:(NSDate *)tappedDate;
@end
2) 将(非保留!)委托属性作为IBOutlet添加到CalendarView

@interface CalendarView : UIView
...
@property IBOutlet id<CalendarViewDelegate> delegate;
@end

作为MVC通用代码分解策略的一部分,视图不应该知道控制器。(如果你不了解MVC,谷歌是你的朋友,这很重要。)如果你想将与视图的交互传递给控制器,你应该制定一个委托协议,创建一个委托接口,在控制器中实现它,并在interface builder中将控制器连接到视图的委托。这听起来可能很多,下面是一个例子:

假设我们有一个日历视图,当有人点击某个日期时,我们想告诉控制器,并询问我们是否应该将该日期设置为所选日期:

1) 制定委托协议

@protocol CalendarViewDelegate
- (BOOL)shouldSelectDate:(NSDate *)tappedDate;
@end
2) 将(非保留!)委托属性作为IBOutlet添加到CalendarView

@interface CalendarView : UIView
...
@property IBOutlet id<CalendarViewDelegate> delegate;
@end

在子视图控制器实现中

导入“urmainViewcontrollerclassname”
在子视图控制器实现中

导入“urmainViewcontrollerclassname”
urmainViewcontrollerclassname *temp=(urmainViewcontrollerclassname*)self.parentViewController;

[temp mainVCFunction];

    //test with nslog in mainVCFunction.