代码创建的segue如何绑定到viewController?

发布于 2022-09-01 18:35:24 字数 406 浏览 14 评论 0

viewDidLoad: 方法里面创建了一个 segue

let aSegue = UIStoryboardSegue(identifier: "hello", source: self, destination: ViewControlerrB())

但是直接

performSegueWithIdentifier("hello", sender: self)

是找不到 segue “hello”
所以我的问题就是 怎么将创建的这个segue 绑定给某个变量从而使用?
storyBoard 中创建的方法不算

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

維他命╮ 2022-09-08 18:35:24

如果prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)里没有做判断肯定是找不到segue "hello"的。

无所的.畏惧 2022-09-08 18:35:24

你不能自己创建 segue ,只能在 storyboard 中连线并指定 identifier

野生奥特曼 2022-09-08 18:35:24

我仔细的看了文档并且试了下
只有在重写了 perform:_ 方法或者用带perform:_ 方法的闭包的便利构造器才可以通过identifier 来访问 segue
也就是说只有在实现了上述方法segue才会被真正完全示例化来使用

清醇 2022-09-08 18:35:24

两种方法:
1.写一个UIStoryboardSegue的子类,然后重写其 perform 方法.
2.使用

convenience init(identifier identifier: String?,
          source source: UIViewController,
     destination destination: UIViewController,
  performHandler performHandler: () -> Void)

方法来创建 UIStoryboardSegue.

一个 obj-c的示例如下:

    UIViewController * toVC = [[UIViewController alloc] init];
    
    
    UIStoryboardSegue * segue = [UIStoryboardSegue segueWithIdentifier:@"hello" source:self destination:toVC performHandler:^{
        [self presentViewController: toVC animated: YES completion: NULL];
    }];
    
    [segue perform];

另外,既然用纯代码了,或许不使用 segue,直接跳转,会更方便些.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文