2012-10-19 35 views
0

我有兩個模式控制器的按鈕關閉在每個頂部導航欄。 我想攔截我的主視圖控制器中正確的關閉按鈕。 不幸的是,這段代碼不起作用,爲什麼?sender.identifier isEqualToString

- (IBAction)close:(UIStoryboardSegue *)sender { 

     if ([sender.identifier isEqualToString: @"FirstModalClose"]) { 
     NSLog(@"FirstModalClose"); 
    } 

     if ([sender.identifier isEqualToString: @"SecondModalClose"]) { 
     NSLog(@"SecondModalClose"); 
    } 
} 
+0

定義「不工作」 – jrturton

+0

當我點擊關閉第一個模式控制器它不寫在NSLog FirstModalClose和當我點擊關閉在第二個模式控制器它不寫在NSLog SecondModalClose – Fabrizio

+1

它是否進入該方法?關閉按鈕工作嗎?你在方法中使用了斷點,並檢查了發件人是什麼?問題是,你發佈的代碼沒有問題,所以問題必須在其他地方 - 要麼你沒有在你的segue上設置標識符,要麼你沒有正確連接按鈕。從你的問題中獲取信息是不可能的。 – jrturton

回答

1

我根本就插FirstModalClose和SecondModalClose在適當的領域:( 我插入FirstModalClose和SecondModalClose在故事板Segue公司,而不是在故事板開卷Segue公司。 現在所有工作正常。

3

事實上,類型IBAction表明,這種方法被觸發(如果有的話)由GUI元素,不是SEGUE。因此,發件人可以是UIControl而不是UIStoryboardSegue。可能你想用UIViewController的方法- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender。在那裏,你得到兩個:發件人的segue。

+0

所以我不必將模式視圖(導航欄)中的關閉按鈕連接到我的第一個視圖控制器?我讀過,每次我需要放鬆一下,我總是添加此代碼 - (IBAction)關閉:(UIStoryboardSegue *)發件人{} – Fabrizio

+0

我傻!我在Storyboard Segue中插入名稱FirstModalClose和SecondModalClose,而在Storyboard Unwind Segue中插入名稱。 – Fabrizio