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

时间:2014-05-09 15:07:26

标签: ios uitableview

我正在开发一个iOS应用程序,我有一个大问题......

我需要在viewController中有一个tableview(这就是为什么我不能使用UiTableViewController)而且我不能使用静态单元格。我解决了创建一个NSMutableArray并在我的cellForRowAtIndexPath中加载每个单元格。

那么,我的问题是什么?

在swrevealviewcontroller教程(如http://www.appcoda.com/ios-programming-sidebar-navigation-menu/)中,他们在推送单元格时使用segues进行导航,因此,如何以dinamically方式创建segues?

我尝试使用

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

但它不起作用。

谢谢!

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您需要将视图控制器中的segue链接到目标,然后使用视图控制器的preformSegueWithIdentifier:方法。请参阅:Understanding performSegueWithIdentifier

答案 2 :(得分:0)

[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。

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

中执行此操作

注意:您无法在导航控制器上使用storyboard实例化视图控制器