如何減少視圖控制器?有時你最終會在視圖控制器中實現很多協議,因此控制器內部有很多代碼。閱讀如何減少iOS中的視圖控制器我發現一種常見的方式是將DataSources(http://www.objc.io/issue-1/lighter-view-controllers.html)移動到其他類,但其他代表呢?或者如果您通過代碼創建視圖?首先,我想舉每位代表一個NSObject類,所以我試試這個:如何減少iOS中的視圖控制器?
self.locationManager.delegate = [[FRRYPetDescriptionViewControllerLocationDelegate alloc] init];
然後,我在IRC問,有人建議類,所以這是我到目前爲止:
// FRRYPetDescriptionViewController.h
@interface FRRYPetDescriptionViewController : UIViewController
@property (nonatomic) CLLocationManager *locationManager;
@property (nonatomic) TPKeyboardAvoidingScrollView *scrollView;
@property (nonatomic) UIView *contentView;
@end
// FRRYPetDescriptionViewController+Protocols.h
@interface FRRYPetDescriptionViewController (Protocols) <UITextViewDelegate, UIActionSheetDelegate, MFMailComposeViewControllerDelegate, UIGestureRecognizerDelegate, MKMapViewDelegate, UIViewControllerTransitioningDelegate, CLLocationManagerDelegate>
@end
// FRRYPetDescriptionViewController+UIAdditions.h
@interface FRRYPetDescriptionViewController (UIAdditions)
- (void)createScrollView;
- (void)createContentView;
@end
// FRRYPetDescriptionViewController+Callbacks.h
@interface FRRYPetDescriptionViewController (Callbacks)
@end
// FRRYPetDescriptionViewController+LocationAdditions.h
@interface FRRYPetDescriptionViewController (LocationAdditions)
@end
這讓我想到,「私有」方法呢?我需要聲明視圖控制器頭文件中的所有屬性嗎?你們對這種方法有什麼看法,或者有一些常見的模式需要遵循,而不是以胖控制器結束?
謝謝。
選中此項:http://www.objc.io/issue-13/mvvm.html – Mateusz 2015-04-01 13:42:20