如何返回到不同故事板的上一个视图控制器?

4

我有两个故事板,分别是A和B。故事板A有多个视图控制器。在某些用户操作后,我从故事板A切换到故事板B。如何在点击返回按钮时返回到之前的故事板A,并回到最初来自的同一视图控制器。

我不能像下面所示那样做,因为我将没有旧的A导航堆栈。

 let storyboard =  UIStoryboard(name: "A", bundle: nil)
    let vc = storyboard.instantiateInitialViewController() as UIViewController!
    presentViewController(vc, animated: true, completion: nil)

你的视图控制器是否嵌入了导航控制器? - André Slotta
是的,它们是一样的。即使故事板改变,导航控制器仍然保持不变吗? - 2ank3th
see my answer below... - André Slotta
4个回答

9
“返回”按钮应该链接到类似这样的内容:
self.dismissViewControllerAnimated(true, completion: nil)

1
在 Xcode 9 和 Swift 4 中,它是:self.dismiss(animated: true, completion: nil) - Vince Yuan

8

如果你的视图控制器被嵌入到导航控制器中,你可以按照以下步骤操作:

从故事板A跳转到故事板B

let storyboard =  UIStoryboard(name: "B", bundle: nil)
let vc = storyboard.instantiateInitialViewController() as UIViewController!
navigationController?.pushViewController(vc, animated: true)

从故事板B返回到故事板A
navigationController?.popViewControllerAnimated(true)

(当然,Storyboard B 中的初始视图控制器不应该是导航控制器,而是普通的视图控制器)

1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - 2ank3th
这是一项公司项目,所以我不能分享它。 - 2ank3th
我在B的开头删除了导航控制器,并将普通视图控制器设置为初始视图控制器。但即使这样,也无法正常工作。 - 2ank3th
你可以展示一下你的视图控制器层级结构的截图吗? - André Slotta
最初它没有工作是因为我正在从模态视图控制器更改故事板。 - 2ank3th

1

适用于XCODE 9 Swift 4

navigationController?.popViewController(animated: true)

0

使用这段代码,当你想返回到上一个页面时

navigationController?.popViewControllerAnimated(true)

1
在Xcode 9,Swift 4中,它是:navigationController?.popViewController(animated: true) - Vince Yuan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接