簡體   English   中英

從UITableViewCell到ViewController的Segue無法正常工作

[英]Segue from UITableViewCell to ViewController not working

我在UITableViewCellUIViewController之間設置了segue。 我的理解是,如果我將顯示單元從原型單元格設置為UIViewController ,則在點擊UITableView中的單元格之一時將顯示UIViewController ,但這對我而言並非如此。 使它工作的唯一方法是重寫tableView didSelectRowAtIndexPath ,然后調用performSegueWithIdentifier

為了測試這一點,我將一個快速項目與一個UITableViewController和一個UIViewController整合在一起。 當我在原型單元和UIViewController之間創建UIViewController ,它按照應有的方式工作。 所以我知道有可能,我只是不確定是什么導致我的實際項目出現問題。

沒有太多代碼可顯示。 我的原型單元是一個來自xib文件的自定義單元,但是我也嘗試給它提供一個UITableViewCell類,這沒有什么區別。

有沒有人遇到過這樣的問題應該起作用的情況,但是沒有嗎? 如果是這樣,您如何解決?

讓我們澄清一些重要的事情

  1. performSegueWithIdentifier: sender:是UIViewController的一種方法,因此要從單元格執行segue,您需要在單元格中聲明VC的弱屬性,像這樣

@property(非原子的,弱的)UIViewController * segueController;

通過執行您的動作

[self.segueController performSegueWithIdentifier:@"segue_id" sender:self];
  1. 最常見的方法-使用didSelectRowAtIndexPath有以下好處:您的segue邏輯屬於controller而不是視圖 (因為uitableviewcell是uiview的子級)。 因此,我建議您使用此方法進行搜索或使用視圖層次結構進行操作

暫無
暫無

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

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