Ios 从子视图控制器推送视图控制器
从按钮操作中,我展示了一个视图控制器,从展示的VC中,添加了另一个按钮,并在该按钮操作中添加了一个子视图,如下所示-Ios 从子视图控制器推送视图控制器,ios,swift,Ios,Swift,从按钮操作中,我展示了一个视图控制器,从展示的VC中,添加了另一个按钮,并在该按钮操作中添加了一个子视图,如下所示- let vc = UIStoryboard(name: "Profile", bundle: nil).instantiateViewController(withIdentifier: "APPopUpViewControllerViewController") as! APPopUpViewControllerViewControlle
let vc = UIStoryboard(name: "Profile", bundle: nil).instantiateViewController(withIdentifier: "APPopUpViewControllerViewController") as! APPopUpViewControllerViewController
self.addChild(vc)
vc.view.frame = self.view.frame
self.view.addSubview(vc.view)
vc.didMove(toParent: self)
到目前为止,所有这些都工作得很好,但当我尝试从这个孩子VC中推一个视图控制器时,它不起作用。如何从子视图推送视图控制器
推送视图控制器代码-
let storyboard = UIStoryboard(name: "WPLogin", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "WPSigninViewController") as! WPSigninViewController
self.navigationController?.pushViewController(vc, animated: true)
你可以试试
print(parent)
print(parent?.navigationController)
self.parent?.navigationController?.pushViewController(vc, animated: true)
你可以试试
print(parent)
print(parent?.navigationController)
self.parent?.navigationController?.pushViewController(vc, animated: true)
我的猜测是,
self.navigationController
为零,因此您的可选链接失败。我的猜测是,self.navigationController
为零,因此您的可选链接失败。如何呈现您的ViewController?如果你把它推到了导航控制器上,那么你的代码是完美的,我认为它应该可以工作
如果没有,则尝试将WPSigninViewController模式显示为
let storyboard = UIStoryboard(name: "WPLogin", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "WPSigninViewController") as! WPSigninViewController
self.present(vc, animated: true)
它应该会起作用
如果ViewController是您的rootController,则可以向其中添加导航控制器:
let viewController = ViewController(nibName: nil, bundle: nil)
let navigationController = UINavigationController(rootViewController: viewController)
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = navigationController
self.window?.makeKeyAndVisible()
如何显示视图控制器?如果你把它推到了导航控制器上,那么你的代码是完美的,我认为它应该可以工作 如果没有,则尝试将WPSigninViewController模式显示为
let storyboard = UIStoryboard(name: "WPLogin", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "WPSigninViewController") as! WPSigninViewController
self.present(vc, animated: true)
它应该会起作用
如果ViewController是您的rootController,则可以向其中添加导航控制器:
let viewController = ViewController(nibName: nil, bundle: nil)
let navigationController = UINavigationController(rootViewController: viewController)
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = navigationController
self.window?.makeKeyAndVisible()
我没有使用self.navigationController?.pushViewController(vc,动画:true),而是尝试了你的代码,但没有成功@Sh_KhanGetting 1st print-Optional()2nd print-nil@Sh_khan这意味着你没有将
ApprovileViewController
嵌入导航控件中,请将其添加到情节提要/代码中,pushViewController
没有它就无法工作否添加子项必须来自未正确显示的已推送vc。Profile
VC的父级必须推送到导航控制器上,才能由导航控制器管理。我没有使用self.navigationController?.pushViewController(VC,动画:true),而是尝试了您的代码,但没有运气@Sh_KhanGetting 1st print-可选()第二次打印-nil@Sh_Khan这意味着您不会将approvileviewcontroller
嵌入导航控件中,请将其添加到情节提要/code中,pushViewController
如果没有它将无法工作否添加子项必须来自未正确呈现的推送vc。配置文件
VC的父项必须推送到导航控制器上,才能由导航控制器管理。此外,如果你像我一样懒惰,只需将?
更改为
强制崩溃以查看什么是零,然后从零开始查看。此外,如果你像我一样懒惰,只需将?
更改为代码>强制崩溃以查看完全为零的内容,然后从那里开始查看