Eureka:如何在没有 Segue 的情况下从 PushRow 推送 VC
Eureka: How to push a VC from a PushRow without Segue
我正在使用 Eureka 进行设置VC,但我无法从 pushRow 推送新的VC。 注意我没有使用故事板
我的设置相对简单,我的新VC 是一个带有一些 uitextfields 和标签的简单 UIViewController。因为我不使用故事板,所以我似乎无法使用 performSegues 和 [=12=].presentationMode = .segueName(segueName: "RowsExampleViewControllerSegue", onDismiss: nil)
我也查看了这个 但是这个 post 对于我的申请来说相对牵强。
目前我的实现是这样的:
class AccountsViewController: FormViewController {
override func viewDidLoad() {
super.viewDidLoad()
form +++ Section("Profile")
<<< PushRow<String>() { row in
row.title = "Edit phone number"
row.value = "+61 12345678"
}.onCellSelection({ (cell, row) in
self.navigationController?.pushViewController(ChangePhoneNumberViewController(), animated: true)
})
上述方法将 VC 推送两次。
我想采用 pushRow 的原因是因为我希望它采用 pushRow 美学外观,如附图所示。我也考虑过探索 ButtonRow 但 UI/UX 是不对的。继续前进,我还需要使用协议将新的 "phoneNumber" 引入 AccountsViewController。
编辑:
尝试了以下代码但产生了错误消息。
我想你只需要像这样设置演示模式:
presentationMode = PresentationMode.show(
controllerProvider: ControllerProvider.callback(
{return ChangePhoneNumberViewController()}
), onDismiss: nil)
ControllerProvider.callback
允许您通过从闭包而不是从 nib 文件或情节提要中返回一个来提供 VC。
我遇到了同样的错误,您可以尝试在回调中包含 return 类型和参数标签 builder
:
row.presentationMode = PresentationMode.show(
controllerProvider: ControllerProvider.callback(builder: { () -> UIViewController in
return AcknowListViewController()
}),
onDismiss: nil)
我正在使用 Eureka 进行设置VC,但我无法从 pushRow 推送新的VC。 注意我没有使用故事板
我的设置相对简单,我的新VC 是一个带有一些 uitextfields 和标签的简单 UIViewController。因为我不使用故事板,所以我似乎无法使用 performSegues 和 [=12=].presentationMode = .segueName(segueName: "RowsExampleViewControllerSegue", onDismiss: nil)
我也查看了这个
目前我的实现是这样的:
class AccountsViewController: FormViewController {
override func viewDidLoad() {
super.viewDidLoad()
form +++ Section("Profile")
<<< PushRow<String>() { row in
row.title = "Edit phone number"
row.value = "+61 12345678"
}.onCellSelection({ (cell, row) in
self.navigationController?.pushViewController(ChangePhoneNumberViewController(), animated: true)
})
上述方法将 VC 推送两次。
我想采用 pushRow 的原因是因为我希望它采用 pushRow 美学外观,如附图所示。我也考虑过探索 ButtonRow 但 UI/UX 是不对的。继续前进,我还需要使用协议将新的 "phoneNumber" 引入 AccountsViewController。
编辑:
尝试了以下代码但产生了错误消息。
我想你只需要像这样设置演示模式:
presentationMode = PresentationMode.show(
controllerProvider: ControllerProvider.callback(
{return ChangePhoneNumberViewController()}
), onDismiss: nil)
ControllerProvider.callback
允许您通过从闭包而不是从 nib 文件或情节提要中返回一个来提供 VC。
我遇到了同样的错误,您可以尝试在回调中包含 return 类型和参数标签 builder
:
row.presentationMode = PresentationMode.show(
controllerProvider: ControllerProvider.callback(builder: { () -> UIViewController in
return AcknowListViewController()
}),
onDismiss: nil)