簡體   English   中英

多個視圖控制器的iOS委托問題

[英]iOS Delegate Issue with multiple view controllers

我有一個帶有兩個視圖控制器的應用程序..父控制器,一個被推入堆棧的子控制器。

我已經對程序進行了編碼,以便在調用父視圖或子視圖的viewDidAppear方法時,將networkClass的委托設置為父OR子。

因此,問題是,我的子類實現了一些委托方法,而在父類中不需要這些委托方法,因為父類從不進行某些網絡調用。 但是,當我在子類中發起網絡調用,並在完成后按BACK到父類時。父類現在已設置為委托。

但是由於父類沒有實現委托方法,因此它會崩潰。

我可以知道解決方法嗎?

選項1:在子viewWillDisappear取消操作。

選項2:在networkClass ,在調用該方法之前檢查該方法是否已實現。

選項3 :(代碼氣味):在父級中實現存根。

在任何情況下,您都應該取消操作(操作1)。 如果您在協議定義中將這些功能標記為optional功能,則一定要檢查其是否存在(Op.2)。 如果沒有,您應該已經收到有關未完成實現的編譯器警告。 不要忽略任何編譯器錯誤,尤其是關於未實現的方法! 如果完全實現它們沒有意義,則應認真考慮它們是否應該是可選的(2)。 當然,您可以實現存根( -(void)callback1{} ),但這很少是正確的做法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM