将Int从子视图返回到ViewController

时间:2011-09-13 21:34:14

标签: iphone objective-c ios xcode

我在我的rootViewController中添加了一个UIView,UIView检测到触摸并使用它们的坐标返回一个特定的Integer,但是我不知道如何将这个整数返回给我的rootViewController。我在某处看到MVC说UIView不应该知道viewcontroller,这是真的吗?如果那么我怎么能做到这一点?谢谢!

2 个答案:

答案 0 :(得分:2)

我建议你定义一个用于在它们之间传递Integer的协议。使视图控制器实现协议并将其分配给视图。然后,从视图中,使用所需的值激活协议方法。

协议示例:

@protocol YourProtocol

-(void)handleCaptureInteger:(NSInteger)value;

@end

查看控制器(.h)示例:

@interface YourViewControler : UIViewController<YourProtocol>

...

@end

查看控制器(.m)示例:

@implementation YourViewController

- (void)viewDidLoad
{
    [yourView setDelegate:self];
}

@end

查看示例:

@interface YourView : UIView

@property (nonatomic, assign) NSObect<YoutProtocol> *delegate;

@end

答案 1 :(得分:1)

我建议将所有这些逻辑放在ViewController上。让rootViewController将TapGestureRecognizer添加到视图中,并使用其locationInView:和/或locationOfTouch:inView:方法来确定应用程序应如何响应。