具有自定义视图的iOS MVC实现
当视图很简单时,它们的iAction和iOutlet位于viewcontroller中,viewcontroller指定要加载的各个模型,并且在准备模型时通知viewcontroller 由于我的项目包含每个viewcontroller的许多自定义视图,我希望在自定义视图本身中实现操作,并从控制器(viewcontroller)设置数据。 我应该能够在iPhone和iPad上使用相同的控制器和型号,只有UI发生变化 我关心的是如何在模型更改时将数据从视图传递到viewcontroller并在视图上显示数据具有自定义视图的iOS MVC实现,ios,model-view-controller,custom-view,Ios,Model View Controller,Custom View,当视图很简单时,它们的iAction和iOutlet位于viewcontroller中,viewcontroller指定要加载的各个模型,并且在准备模型时通知viewcontroller 由于我的项目包含每个viewcontroller的许多自定义视图,我希望在自定义视图本身中实现操作,并从控制器(viewcontroller)设置数据。 我应该能够在iPhone和iPad上使用相同的控制器和型号,只有UI发生变化 我关心的是如何在模型更改时将数据从视图传递到viewcontroller并在视图
是否有人建议我在视图之间传递数据viewcontroller(controller)模型?不要使用不同的自定义视图,请尝试使用UIViewController,然后使用viewcontroller的视图来显示您的UI。此外,这还将确保您能够在视图和控制器之间高效地进行通信,而不会产生混淆。为此,我使用委托设计模式。看起来是这样的: MyView.h
@protocol MyViewDelegate <NSObject>
- (void)customViewDidSomething;
@end
@interface MyView : UIView
@property (nonatomic, assign) id<MyViewDelegate> delegate
@end
MyViewController.h
#import "MyView.h"
// ViewController has to implement the protocol
@interface MyViewController <MyViewDelegate>
@property (nonatomic, retain) IBOutlet MyView myView;
谢谢。它帮助了我。
#import "MyView.h"
// ViewController has to implement the protocol
@interface MyViewController <MyViewDelegate>
@property (nonatomic, retain) IBOutlet MyView myView;
- (void)viewDidLoad { // Set the delegate somewhere
_myView.delegate = self
}
- (void)customViewDidSomething {
// Ok VC is aware that something happened
// Do something (tell subview to do something ?)
}