故事板中有一对segue,都带有标识符。是否可以通过代码访问它们并更改其锚点?
这样的事情:
mySegue1.anchor = someOtherView
答案 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)
}
然后弹出窗口将以您的对象作为锚点出现。