我需要我所有的視圖控制器能夠顯示消息撰寫視圖控制器(MFMessageComposeViewController
),並處理MFMessageComposeViewControllerDelegate
方法來查看郵件是否發送/取消/失敗。所以我的想法是在這個視圖控制器中繼承這些方法的子類UIViewController
。然後讓我所有的視圖控制器需要能夠發送消息子類上述視圖控制器。iOS - 子類避免代碼重複和協議
所以像BaseMessageViewController : UIViewController
然後ViewController1 : BaseMessageViewController
,ViewController2 : BaseMessageViewController
等等...
所以,當我在這,我想我會創建這樣一個協議:
@protocol MessageProcessing
@required
- (void)presentMessageCompose;
- (void)processMessageCancelled;
- (void)processMessageSent;
- (void)processMessageFailed;
@end
但我不確定BaseMessageViewController
應該符合此協議還是我的「具體」視圖控制器應符合它?
一個想法是,如果我的BaseMessageViewController
符合它,那麼我的具體視圖控制器會自動符合它,因爲類繼承?但是在具體的視圖控制器中我沒有看到任何警告,他們沒有實現所需的方法。
可有人請給我在這裏伸出援助之手:)
我正在尋找一種方法來重寫像你可以用Java做的方法......你在你的超類中聲明瞭一些方法,然後在你的子類中你可以擁有你自己的方法實現(如果你喜歡的話)在超類中聲明或者只是讓它使用超類方法。 –
也可以將KVO添加到'BaseMessageViewController',這樣我的所有視圖控制器都將具有KVO,以便在'BaseMessageViewController'中設置屬性。 –