从以编程方式创建的 table 视图创建 segue

Creating segue from programmatically created table view

我是 iOS 开发的新手,在完成一些基础教程和初级书籍后,我查看了 iOS 编程的示例。之后我发现了这个。

https://github.com/uacaps/PageMenu

我下载了示例,但遇到问题。我正在使用 PageMenuDemoTabbar (https://github.com/uacaps/PageMenu/tree/master/Demos/Demo%204/PageMenuDemoTabbar) 例子。我想在用户单击 tableviewcell 时添加 segues。但这就是问题所在。因为以编程方式创建的表格视图,我无法从情节提要中添加 segues。

我怎样才能做到这一点?

感谢您的帮助。

如果你想从 Storyboard 转到另一个视图控制器,只需将 StoryboardID 添加到这个视图控制器(就像我有 RootViewController 和 StoryboardID RootVC):

然后为要传递给视图控制器的数据创建 public 属性(即 @property (nonatomic, strong) NSDictionary *propertyYouSet)。 然后在您的 -tableView:didSelectItemAtIndexPath: UITableView 委托方法中添加以下代码:

YourViewController *yourViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"YourViewControllerStoryboardID"];
yourViewController.propertyYouSet = @{ 'someKey': 'someValueYouWantToPass' };

[self.navigationController pushViewController:yourViewController animated:YES];

这样你仍然可以使用故事板视图控制器而不需要 segue。

Swift版本

糟糕,刚刚注意到 swift 标签。所以这里是 Swift:

中的相同代码
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewControllerWithIdentifier("yourViewControllerStoryboardID") as! UIViewController
    vc.setYourProperty(someDictionaryHere) // I'm not so sure about this, I'm new in Swift too :)
    self.presentViewController(vc, animated: true, completion: nil)
}

然后在您的视图控制器中覆盖此方法:

init(coder aDecoder: NSCoder!)
{
    super.init(coder: aDecoder)
}

(因为在 Swift 中需要 -initWithCoder: :))