如何解决无法推送将其设置为根vc
我有一个视图控制器(没有嵌入到导航控制器中)。假设mainVC,从maninVC我有一个名为goNext的按钮。当我点击时,我需要使用相同的VC mainVC进行标签更改。
所以我做到了:
这是在应用程序委托中:
let storyBoard:UIStoryboard = UIStoryboard(name: "Main",bundle: nil)
let exampleVC = storyBoard.instantiateViewController(withIdentifier: "MainVC")
self.window = UIWindow(frame: UIScreen.main.bounds)
self.window?.rootViewController = exampleVC
self.window?.makeKeyAndVisible()
我的vc:
func pushToMainVc() {
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main",bundle: nil)
let loginPageView = mainStoryboard.instantiateViewController(withIdentifier: "MainVC") as! MainVC
let rootViewController = self.window?.rootViewController as? UINavigationController
rootViewController?.pushViewController(loginPageView,animated: true)
}
但是它没有推动。任何帮助都会很棒。
谢谢
解决方法
为什么要再次推送/加载mainVC? mainVC已经加载。如果您希望在按下goNext按钮时发生标签更改,请将该标签的IBOutlet放入ViewController代码中。并在代码中获取goNext按钮的IBAction,并在按下该按钮时更改标签。例如:
class mainVC: UIViewController {
...
@IBOutlet weak var someLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
someLabel.text = "TextOnLoad"
}
...
@IBAction func goNextButtonPressed(_ sender: UIButton) {
someLabel.text = "ChangedText"
}
}
,
您不能将相同的ViewController
推到NavigationController
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。