使用 swrevealviewcontroller 在 ViewController 中嵌入 uitableView 中的 Segues

Posted

技术标签:

【中文标题】使用 swrevealviewcontroller 在 ViewController 中嵌入 uitableView 中的 Segues【英文标题】:Segues in uitableView emebed in ViewController using swrevealviewcontroller 【发布时间】:2014-05-09 15:07:26 【问题描述】:

我正在开发一个 ios 应用,但我遇到了一个大问题...

我需要在 viewController 中有一个 tableview(这就是我不能使用 UiTableViewController 的原因)并且我不能使用静态单元格。我解决了创建一个 NSMutableArray 并将每个单元格加载到我的 cellForRowAtIndexPath 中的问题。

那么,我的问题是什么?

在 swrevealviewcontroller 教程(如 http://www.appcoda.com/ios-programming-sidebar-navigation-menu/)中,他们在推送单元格时使用转场进行导航,那么,我怎样才能动态地创建转场?

我尝试使用

MyNewVC *myNewVc=[self.storyboard instantiateViewControllerWithIdentifier:@"homeVC"];
[self.navigationController pushViewController:myNewVc animated:YES];

但它不起作用。

谢谢!!

【问题讨论】:

【参考方案1】:

为什么不创建一个通用的 segue 并使用它呢?它不需要连接到单元格或 UI 控件。这样,只要 segue 标识符正确,您的代码就可以工作。

【讨论】:

但是我该怎么做呢?我只知道如何在我的故事板中创建一个 segue,这意味着我将我的原型单元与一个视图控制器连接起来,我需要 6 个不同的视图控制器 在故事板中屏幕/视图控制器的底部有一个黄色图标 - ctrl + 从那里拖动到另一个视图控制器。给 segue 一个标识符。然后对所有其他视图控制器重复此步骤。不要将其连接到单元格 没问题。如果有帮助,请接受答案。它让其他人知道哪个答案有效。【参考方案2】:

您需要将视图控制器中的 segue 链接到它们的目的地,然后使用视图控制器的 preformSegueWithIdentifier: 方法。看到这个:Understanding performSegueWithIdentifier

【讨论】:

我做不到。它们不是静态的,大豆在我的视图控制器中我只有 1 个原型单元。【参考方案3】:
[self presentViewController:magnifiedVC animated:YES completion:^
    //place block to run here, such as assigning properties
];

这不是 segue,而是另一种跟踪视图控制器的方式。然后,您可以通过在目标视图控制器方法中执行此操作来关闭目标视图控制器:

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];

这意味着您将在呈现视图控制器中实例化目标视图控制器,您不需要使用 segue I afaik。

编辑1: 在这种情况下,您可以使用instantiateViewControllerWithIdentifier: 分配和准备视图控制器,然后使用performSegueWithIdentifier:。然后,每次执行 segue 时,您都需要使用核心数据或 plist 来存储每个视图控制器的状态,以防止发送控制器被卸载和释放并丢失其数据。您可以在prepareForSegue: 中执行此操作。

注意:您不能在导航控制器上使用故事板实例化视图控制器

【讨论】:

谢谢!我不知道可以这样做。例如,我认为对于“关于”视图非常有用,但就我而言,这是一种糟糕的编程习惯,因为我的 tableview 是一个菜单。当我的用户推入一个单元格时,他们将导航到具有相同 tableviw 的另一个视图,因此如果他们导航很多,他们将有多个视图一个在彼此的前面

以上是关于使用 swrevealviewcontroller 在 ViewController 中嵌入 uitableView 中的 Segues的主要内容,如果未能解决你的问题,请参考以下文章

使用相同 SWRevealViewController 的不同 ViewController 上的侧边栏

右侧使用 SWRevealViewController 的两个面板

使用 SWRevealViewController 时应用程序崩溃

带有 SWRevealViewController 的 ios 滑动状态栏

如何使用 swrevealviewcontroller 打开菜单启动应用程序?

UINavigationController:使用 SWRevealViewController 错误:不平衡调用开始/结束外观转换