没有 UI 元素的 Segue 和 Unwind segue
Segue and Unwind segue without UI element
我一直在 SO 上寻找这个问题的答案,但没有成功。
我有 UIViewController
A 和 B。它们在 Storyboard 中没有链接,我想执行从 A 到 B 的 Segue
,然后单击 B 中的按钮来激活unwindSegue
到 A.
到目前为止我有:
1) A 中的 @IBAction
展开回
2) 准备从A到B的Segue函数(In A)
3) 从 B 调用 unwindSegue
到 A
的按钮
我缺少的是2中函数的逻辑。
关于 B 的更多信息:
标题:过滤视图
Class:过滤视图控制器
故事板 ID:FilterView
我尝试创建一个 segue:
let segueToFilter = UIStoryboardSegue(identifier: "SegueToFilterView", source: self, destination: FilterViewController)
认为这可能正是我所需要的。
但是我得到这个错误:
Cannot convert value of type 'FilterViewController.Type' to expected argument type UIViewController
帮助将不胜感激:)
我仍然不明白 segues 是如何给你带来问题的,但是如果你 真的 真的 不想使用 segues ,您可以尝试以编程方式显示和关闭 VCs。
想法是这样的:
- 创建您的 VC
的实例
- 通过设置一些属性将数据传递给它
- 出席!
- 在VC中,解雇。
如果您将 VC 嵌入到导航控制器中,实际代码会有所不同。您可以在导航控制器上调用 pushVC
和 popVC
,而不是调用 present
和 dismiss
。
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "FilterView") as FilterViewController
vc.someProperty = someData // this is where you pass data
vc.present(vc, animated: true, completion: nil)
要传回数据,您应该通过创建第一个 VC 符合的 FilterViewDelegate
来使用委托模式。在 Google 上查找更多信息。
我一直在 SO 上寻找这个问题的答案,但没有成功。
我有 UIViewController
A 和 B。它们在 Storyboard 中没有链接,我想执行从 A 到 B 的 Segue
,然后单击 B 中的按钮来激活unwindSegue
到 A.
到目前为止我有:
1) A 中的 @IBAction
展开回
2) 准备从A到B的Segue函数(In A)
3) 从 B 调用 unwindSegue
到 A
我缺少的是2中函数的逻辑。
关于 B 的更多信息:
标题:过滤视图 Class:过滤视图控制器 故事板 ID:FilterView
我尝试创建一个 segue:
let segueToFilter = UIStoryboardSegue(identifier: "SegueToFilterView", source: self, destination: FilterViewController)
认为这可能正是我所需要的。
但是我得到这个错误:
Cannot convert value of type 'FilterViewController.Type' to expected argument type UIViewController
帮助将不胜感激:)
我仍然不明白 segues 是如何给你带来问题的,但是如果你 真的 真的 不想使用 segues ,您可以尝试以编程方式显示和关闭 VCs。
想法是这样的:
- 创建您的 VC 的实例
- 通过设置一些属性将数据传递给它
- 出席!
- 在VC中,解雇。
如果您将 VC 嵌入到导航控制器中,实际代码会有所不同。您可以在导航控制器上调用 pushVC
和 popVC
,而不是调用 present
和 dismiss
。
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "FilterView") as FilterViewController
vc.someProperty = someData // this is where you pass data
vc.present(vc, animated: true, completion: nil)
要传回数据,您应该通过创建第一个 VC 符合的 FilterViewDelegate
来使用委托模式。在 Google 上查找更多信息。