2012-01-26 58 views
0

我是iOS 5的新手,並且遇到與代理和segues有關的問題。iOS警告:語義問題(多個方法命名'setDelegate:'找到)

我有一個主視圖控制器,可以連接到SettingsViewController。我做了主VC設置VC的這個代碼代表:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"SETTINGS"]) { 
     [[segue destinationViewController] setDelegate:self]; 
    } 
} 

SettingViewController然後塞格斯多個選項屏幕。我試圖讓SettingsViewController這些選項屏幕的代表,但我得到在兩個地方(MainViewControllerSettingsViewController)發現setDelegate:方法的警告。

如何最好地解決這個問題?謝謝!

P.S.我發現只有在編譯器設置中啓用嚴格選擇器匹配警告時(在教程書的建議中),纔會收到此警告。丟開?解決問題?我真的不知道......

+0

離開這個警告關閉。這沒有幫助。如果你真的想要它,你可以通過將'[segue destinationViewController]'的結果轉換爲適當的類型來抑制警告。 –

+0

謝謝,凱文。你能給我一個鑄造的例子嗎?我聽說過這個詞,但我不太確定它會是什麼樣子。 –

回答

0

這應該足以視圖控制器轉換爲已知類型:

[(SettingsViewController *)[segue destinationViewController] setDelegate:self];