我有一個應用程序,其中每個屏幕將與屏幕上的所有元素(即表格,文本字段等)一起動態添加。每個viewController將使用相同的NIB,基本上我循環遍歷JSON,併爲每個新屏幕創建一個新的ViewController對象並將其添加到一個數組中,並且我將同樣的事情添加到屏幕上。Objective-c使用必要的委託方法添加動態元素
事情是,一個屏幕可能需要一個tableView委託方法,另一個可能需要文本字段委託方法。如果我沒有在接口文件實現的代表,那麼我不能做到這一點
textField.delegate = self;
或
tableView.delegate = self;
tableView.dataSource = self;
,因爲它會標記錯誤。
難道是不好的做法,只是爲了補充一點,我可能有所有的委託方法,即
@interface Testing : UIViewController<UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate, UIPickerViewDataSource, UIPickerViewDelegate, UITextViewDelegate, UIWebViewDelegate>
,然後實現所有的方法,這樣只會給他們打電話,如果是需要他們。或者這會是個壞主意?
或者有更好的方法來設置它嗎?
任何信息將不勝感激。
啊,似乎工作得很好,不知道我可以做到這一點。使用此解決方案可能會產生任何問題嗎?或者如果我決定使用此解決方案,我應該注意什麼? (我會盡可能接受你的答案,必須等待10分鐘) – AdamM
至於我的問題的其他部分,你認爲實施所有必需的委託方法是不好的做法。只有在特定屏幕需要它們時纔會調用它們。我知道這會讓班級變得非常大,但不知道我是否有更多的選擇 – AdamM
這只是在編譯過程中克服打字檢查的竅門。你說的是「無論是自我,它都會很好,相信我」。正如我所說的,如果對象符合協議,則所有內容都將在運行時正常工作。 ¶我不能說在你的類中實現所有委託方法是否合理。我會嘗試找到一種不同的解決方案,它可以讓我把代碼分解成更小的塊,但是你的用例是特殊的,所以很難在沒有更多知道和思考的情況下使用體面的解決方案。 – zoul