我有登录视图控制器。当用户显示我为此显示弹出窗口时
推荐 https://www.youtube.com/watch?v=S5i8n_bqblE我可以做到。 当我单击按钮导航到下一个视图控制器时,弹出窗口具有按钮 但是当我单击该操作正在执行时它现在可以工作,但是当我犯错时它就不会导航到下一个视图控制器
Singin
class DigitalGateViewController: NANavigationViewController
{
@IBAction func singin(_ sender: UIButton)
{
let lv = NAViewPresenter().activityVC()
self.present(lv, animated: true)
}
}
this is popupviewcontroller
class ActivityViewController: NANavigationViewController {
@IBAction func okbuttonclick() {
let dv = NAViewPresenter().myGuestListVC()
// self.navigationController?.pushViewController(dv, animated: true)
}
}
它不会迅速推送到textview控制器
答案 0 :(得分:0)
之所以不推送是因为您以模态呈现它而不是在导航堆栈上推送,因此它没有任何navigationController
。如果要从模式弹出窗口中进行推送,则可以访问模式对象上的属性presentingViewController
,然后尝试从那里将其推送到navigationController上。
self.presentingViewController?.navigationController?.pushViewController(myVC, animated: true)
dismiss(animated: true, completion: nil)
答案 1 :(得分:0)
当您提供视图控制器时,它以模态显示,并且不会被推入先前的导航控制器的堆栈中。因此,您尝试调用self.navigationController?.pushViewController()
,但它不起作用,因为自身(即NAViewPresenter().myGuestListVC()
)未嵌入导航控制器中。
如果要将新的VC推送到以前的堆栈,则必须退出显示的弹出窗口,然后再推送。最简单的方法是使用委托方法。
编辑:
如果要创建新的navigationController,可以执行以下操作:
let navController = UINavigationController(rootViewController: NAViewPresenter().myGuestListVC())
present(navController, animated: true)
在介绍了navController
之后,您可以从现在开始使用self.navigationController.push
方法。