如何通过代码访问Storyboard的segue?

时间:2015-09-05 08:05:42

标签: swift segue uistoryboardsegue

故事板中有一对segue,都带有标识符。是否可以通过代码访问它们并更改其锚点?

这样的事情:

mySegue1.anchor = someOtherView

3 个答案:

答案 0 :(得分:0)

试试这个

    self.performSegueWithIdentifier("YourSegueIdentifier", sender: self)

答案 1 :(得分:0)

我认为您可以使用以下代码来控制锚点的视图控制器,正如我在上面的评论中所写,我相信您可以通过编程方式创建一个Segue,以下代码将为您创建一个新的Segue,而不仅仅是更改旧的已经以编程方式绘制了Segue的锚。

  

大多数优秀的程序员都认为你不能通过代码创建Segue,这就是为什么改变Segue锚不被认为是一种可执行的工作。但它是

这是一个目标C'版本,但您可以轻松地将其转换为' Swift'如果你愿意的话。

UIViewController *toViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"OtherViewControllerId"]; 

MySegue *segue = [[MySegue alloc] initWithIdentifier:@"" source:self destination:toViewController]; 

[self prepareForSegue:segue sender:sender]; 

[segue perform];

但是,如果您需要使用手势识别器创建弹出菜单,则只需创建手势识别器并在手势动作功能(handleTap())中激活弹出窗口 看看以下链接,您可以在故事板中创建弹出框,然后编写其余代码或完全按代码执行,这两个都完全覆盖在这里。

http://gracefullycoded.com/display-a-popover-in-swift/

据我所知,我希望自己能做到正确,你即将在你的视图控制器上创建一个弹出窗口,其中定义了一个标签手势。并且你成功完成了这项工作,但弹出式菜单错位了。如果是这种情况您不需要使用segue或故事板,所有部分都可以通过代码轻松完成。

答案 2 :(得分:0)

你可以做的是制作一个不可见的锚帧(即一个标签),并将其用作segue的锚点。我有som按钮并使用这种方法,它工作正常。如果用动态创建的对象替换我的按钮。

@IBAction func rearHubActionUIButton(sender: UIButton) {
        invisibleAncherLabel.frame = sender.frame
        performSegueWithIdentifier("PopSelection", sender: sender)
    }

然后弹出窗口将以您的对象作为锚点出现。