多个segues到一个视图控制器(如何使它在故事板中看起来不错)

时间:2016-09-28 08:22:53

标签: ios xcode uistoryboard

这是我的storyboard图片:

enter image description here

我想创建一个红色箭头所指向的viewController的segue。这是个人资料viewController。最终可能会有三个viewControllers链接到此viewController。目前会有两个。

现在我可以简单地控制拖动节目并创建一个segue。然而,这看起来很混乱。我的storyboard现在将此对角线放在viewControllers下面。

这是预期的做法吗?让一条线从一个到另一个到达是完全正常的吗?

提前感谢您的回复。

2 个答案:

答案 0 :(得分:1)

你实际上只需在故事板中添加segue,即使是对角线,也可以。只是不适合眼睛。

如果您不希望故事板变得混乱,您可以将配置文件控制器放在故事板的另一部分,然后直接调用它而不使用segues。

if let vc = UIStoryboard(name: "MyStoryboard", bundle: nil).instantiateViewControllerWithIdentifier(identifier: "viewControllerId") {
    // Present or push the view controller using the proper function
}

要设置视图控制器标识符,您只需在故事板上单击它,然后填写身份检查器中的“Storyboard ID”字段。

答案 1 :(得分:0)

实际上,您可以使用segue或storyboard id随时将应用程序导航到任何viewCotroller。但是,您必须了解viewController's堆栈时必须知道的预定义规则,每当您加载任何viewController它们出现在最后一个 的堆栈中时强烈的>态度。

您可以使用segue浏览viewConteollerstoryboard ID

目标c:

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"viewsId"];

// Note: use presentViewController or pushViewController one of them    
[self presentViewController:vc animated:YES completion:nil];

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

在斯威夫特:

let vc: UIViewController =  (self.storyboard?.instantiateViewControllerWithIdentifier("viewsId"))!

// Note: use presentViewController or pushViewController one of them
    self.presentViewController(vc, animated: true, completion: nil)

    self.navigationController?.pushViewController(vc, animated: true)