我有兩個視圖控制器「SortViewController」和「CatalogeViewController」。 我有「SortViewController」6按鈕連接到push segue到「CatalogeViewController」 我怎麼知道用戶從哪個按鈕來的? 我爲segue設置了一個標識符,並且我已經考慮準備segue並在用戶按下按鈕時檢查它是否爲「CatalogeViewController」上的相同字符串時向「CatalogeViewController」發送字符串變量。 還有另一種方法可以做到這一點? 請有人可以解釋我如何根據我的問題做字符串變量的segue preapre。 謝謝檢測從先前的視圖控制器點擊哪個按鈕
0
A
回答
2
Bouabane的回答會工作,但它需要爲每個按鈕創建一個不同的階段,這是最初的工作,更難以維護,並且會讓您的故事板上有很多連接。
由於所有的按鈕鏈接到相同的目的地,我會做不同的。
通過控制 - 從您的第一個VC(ViewController)拖動到您的第二個VC手動創建一個segue。給它一個獨特的標識符,如「ButtonSegue」
然後爲所有按鈕創建一個IBAction。將所有按鈕鏈接到相同的操作。
給每個按鈕一個唯一的標籤號碼。使用連續的數字範圍(例如101,102 ... 106)。
在您的IBAction方法中,將按鈕的標記號保存到實例變量中。
在您的prepareForSegue中,將標記號實例變量傳遞給目標VC。 (匹配數字的代碼比匹配字符串的代碼更快更簡單,數字可以使用switch語句)
爲了使代碼更清晰並更易於閱讀,我將定義一個typedef'd枚舉使用可能的標籤值,然後使您的源視圖控制器的標籤編號實例變量和您的目標視圖控制器的標籤編號屬性使用該類型。
0
你應該使用這種方法。
- (空)prepareForSegue:(UIStoryboardSegue *)賽格瑞發件人:(ID)發送
這是一個例子,你如何完成你的需要:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
CatalogeViewController *catalogeViewController = segue.destinationViewController;;
if([segue.identifier isEqualToString:@"firtsSegue"])
{
catalogeViewController.selectedButton = @"firstButton";
}else if([segue.identifier isEqualToString:@"secondSegue"]){
catalogeViewController.selectedButton = @"secondButton";
}else
.
.
.
}
相關問題
- 1. 加載一個外部視圖控制器,從一個按鈕點擊另一個視圖控制器
- 2. VC++,檢測按下按鈕前點擊
- 3. 檢測以前的視圖控制器
- 4. iPad - PageViewController - 顯示按鈕點擊下一個視圖控制器
- 5. 點擊檢測窗口和兩個視圖控制器
- 6. 檢測視圖中的哪個鏈接是從控制器內按下的
- 7. 檢測從ViewModel中點擊了哪個按鈕WPF
- 8. 從按鈕上的控制器檢查數據點擊?
- 9. 傳遞哪個按鈕被點擊到控制器
- 10. 控制器看不到哪個按鈕被點擊
- 11. 檢測視圖控制器
- 12. 從控制器中檢測源視圖
- 13. iPhone故事板如何識別當前模態視圖控制器點擊哪個按鈕
- 14. 點擊一個按鈕,檢測的jQuery
- 15. 按鈕點擊檢測
- 16. java檢測點擊按鈕
- 17. ASP.NET檢查點擊了哪個按鈕
- 18. 檢查哪個按鈕被點擊
- 19. 當第二次點擊按鈕發生時如何更改指定先前點擊的圖像按鈕視圖
- 20. 按鈕會忽略前一個視圖控制器的動作
- 21. 從視圖參數傳遞到控制器時,單擊按鈕
- 22. Xamarin的iOS,在彈出的後退按鈕多個視圖控制器點擊
- 23. jquery手機:如何檢測點擊IE10中的視頻控制欄按鈕?
- 24. 檢測哪個控制器已經在根視圖中彈出
- 25. 檢測一個html按鈕點擊node.js?
- 26. 如何檢測哪個segue標識符激活當前視圖控制器
- 27. Scrapyjs +飛濺點擊控制器按鈕
- 28. 如何在點擊按鈕時將數據從視圖發送到控制器
- 29. 點擊了哪個按鈕?
- 30. 如何檢測點擊了哪個刪除按鈕?