【发布时间】:2014-10-04 20:44:12
【问题描述】:
我正在使用带有自适应转场的通用故事板来构建我的界面。我有一个UISplitViewController 和一个UITableViewController 设置为主视图控制器。我正在使用此表来呈现两种不同类型的信息,因此当用户点击一个单元格时,我需要弄清楚他们点击了哪个单元格,以便显示适合所选单元格的两个不同视图控制器之一。我在 Storyboard 中设置了关系,让细节视图控制器成为两个视图控制器中的第一个,这很好,因为我无论如何都会渲染 UI,直到他们点击一个单元格。我发现我可以创建一个从表格视图控制器到我的另一个视图控制器的转场,当点击相应的单元格时应该显示该转场 - 这是一个“显示详细信息(例如替换)”转场。 I gave it an identifier and I simply call [self performSegueWithIdentifier:ReplaceDetailSegueIdentifier sender:self]; when an appropriate row is selected to go ahead and replace the existing view controller in the detail with the correct view controller.当我选择一个应该显示第二个视图控制器的单元格时,这非常有用。它正确地用第二个视图控制器替换了第一个细节视图控制器。因此,我设置了另一个 segue,当用户点击应该显示原始第一个视图控制器的行时将执行该 segue。但是当这种情况发生时,应用程序会在执行 segue 的行崩溃(但没有信息记录到控制台 - 只是声明 EXC_BAD_ACCESS)。
所以似乎一旦您执行了一次 Show detail segue,后续调用替换详细视图控制器会使应用程序崩溃。如果我选择一行将原始细节控制器替换为第二个视图控制器,然后我选择另一行应该显示相同的第二个视图控制器 - 应用程序崩溃,这也是正确的。
我将如何设置它,以便它根据他们选择的单元格正确显示适当的细节视图控制器,确保应用程序不会崩溃?
【问题讨论】:
-
你是如何设置segue去原来的细节控制器的?来自哪个控制器?
标签: ios objective-c segue uisplitviewcontroller uistoryboardsegue