我在我的rootViewController中添加了一个UIView,UIView检测到触摸并使用它们的坐标返回一个特定的Integer,但是我不知道如何将这个整数返回给我的rootViewController。我在某处看到MVC说UIView不应该知道viewcontroller,这是真的吗?如果那么我怎么能做到这一点?谢谢!
答案 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:方法来确定应用程序应如何响应。