如何从 popover 演示视图控制器导航到另一个视图控制器
How to navigate from popoverpresentation view controller to another view controller
我有一个带有导航控制器的屏幕,它在导航栏上有一个按钮,它显示 table(来自另一个视图控制器)到 select 使用弹出显示的东西,现在单击这些项目中的任何一个,我想在不同的屏幕上打开另一个视图控制器。
但是如果我使用 navigationController?.pushViewController(tab, animated: true)
新的视图控制器显示在那个小弹出视图本身
如果我使用
navigationController?.presentViewController(tab, animated: true)
,则该屏幕上没有导航栏,我无法返回到上一个屏幕。如何以我可以返回到首先显示弹出列表的屏幕的方式进行操作。
如果您使用的是情节提要,那真的很容易做到。如果不是,那么您应该。使用 Storyboard 非常好
让我们将您的视图控制器命名为这些名称:
- 可以显示弹出窗口的视图控制器被称为
SourceVC
- 弹出控制器被调用
PopoverVC
- 当用户 select 从 table 视图调用某些内容时显示的视图控制器
NewVC
添加一个将您的 SourceVC
连接到您的 NewVC
的节目转场。给 segue 一个标识符。
添加从 PopoverVC
展开到 SourceVC
的展开转场。首先,将这些方法添加到 SourceVC
:
func unwind(segue: UIStoryboardSegue) {
if let vc = segue.sourceViewController as? PopoverVC {
// get the thing that the user selected and store it somewhere
// perform a segue that shows NewVC
}
}
override func prepareForSegue(segue: UIStoryboardSegue) {
if let vc = segue.destinationViewController as? NewVC {
// pass the thing that the user selected to the NewVC
}
}
然后,select PopoverVC
并控制拖动它到 SourceVC
中的 "Exit" 东西。和 select "unwind:"。也给这个 unwind segue 一个标识符。
当用户 select 在 table 视图中有一行时,只需执行展开转场并将用户 select 编辑的内容存储在 class-级别变量,以便您可以将其传递给 SourceVC
.
我有一个带有导航控制器的屏幕,它在导航栏上有一个按钮,它显示 table(来自另一个视图控制器)到 select 使用弹出显示的东西,现在单击这些项目中的任何一个,我想在不同的屏幕上打开另一个视图控制器。
但是如果我使用 navigationController?.pushViewController(tab, animated: true)
新的视图控制器显示在那个小弹出视图本身
如果我使用
navigationController?.presentViewController(tab, animated: true)
,则该屏幕上没有导航栏,我无法返回到上一个屏幕。如何以我可以返回到首先显示弹出列表的屏幕的方式进行操作。
如果您使用的是情节提要,那真的很容易做到。如果不是,那么您应该。使用 Storyboard 非常好
让我们将您的视图控制器命名为这些名称:
- 可以显示弹出窗口的视图控制器被称为
SourceVC
- 弹出控制器被调用
PopoverVC
- 当用户 select 从 table 视图调用某些内容时显示的视图控制器
NewVC
添加一个将您的 SourceVC
连接到您的 NewVC
的节目转场。给 segue 一个标识符。
添加从 PopoverVC
展开到 SourceVC
的展开转场。首先,将这些方法添加到 SourceVC
:
func unwind(segue: UIStoryboardSegue) {
if let vc = segue.sourceViewController as? PopoverVC {
// get the thing that the user selected and store it somewhere
// perform a segue that shows NewVC
}
}
override func prepareForSegue(segue: UIStoryboardSegue) {
if let vc = segue.destinationViewController as? NewVC {
// pass the thing that the user selected to the NewVC
}
}
然后,select PopoverVC
并控制拖动它到 SourceVC
中的 "Exit" 东西。和 select "unwind:"。也给这个 unwind segue 一个标识符。
当用户 select 在 table 视图中有一行时,只需执行展开转场并将用户 select 编辑的内容存储在 class-级别变量,以便您可以将其传递给 SourceVC
.