我想在单击上一个视图中的按钮时创建导航控制器视图.我之前的观点是在最后一页上有一个按钮.
我成功地将按钮连接到我的下一个视图,但我无法使视图像导航控制器一样.例如,当显示导航栏时,我无法向其添加导航项.
所以我的问题是:
有没有办法通过在第一个视图中单击我的按钮来设置我创建的新视图作为导航视图的根控制器?
我的代码的简短版本:
class VIEwController: UIVIEwController {overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() let button = UIbutton(frame: CGRect(x: vIEw.frame.wIDth / 2,y: vIEw.frame.height / 2,wIDth: 40,height: 40)) button.backgroundcolor = .red button.tintcolor = .white button.setTitle("Test",for: .normal) button.addTarget(self,action: #selector(change),for: .touchUpInsIDe) vIEw.addSubvIEw(button)}func change () { let otherVIEw = SecondVIEwController() self.present(otherVIEw,animated: true,completion: nil)}
}
class SecondVIEwController: UINavigationController {overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() vIEw.backgroundcolor = .yellow}
}
SecondVIEwController得到了导航栏显示,但我有实现导航项的问题,因为它们没有显示.
我提出的第二个视图控制器是否必须是UIVIEwController或UINavigationController类型?
我知道,有更简单的方法可以通过使用故事板来实现我的目标,但在我看来,我通过代码创建自己的引用而不是通过将它们拖出故事板来创建它们更好地理解它.
编辑:我现在没有客观的背景和学习快速约4周.我感谢任何帮助.
解决方法 您可以像下面一样添加UINavigationController:首先,你必须创建SecondVIEwController的对象,
let objVC: SecondVIEwController? = storyboard?.instantiateVIEwController(withIDentifIEr: "SecondVIEwController")
要么
let objVC: SecondVIEwController? = SecondVIEwController(nibname: "SecondVIEwController",bundle: nil)
要么
let objVC: SecondVIEwController? = SecondVIEwController()
然后将Navigation添加到SecondVIEwController
let aObjNavi = UINavigationController(rootVIEwController: objVC!)
如果你想出席然后使用:
self.present(aObjNavi,animated: true) { }
如果你想推,那么使用:
self.navigationController?.pushVIEwController(aObjNavi,animated: true)
如果要设置为根控制器,请使用:
let appDelegate: AppDelegate = (UIApplication.shared.delegate as? AppDelegate)!appDelegate.window?.rootVIEwController = aObjNavi总结
以上是内存溢出为你收集整理的ios – 如何以编程方式在代码中添加导航控制器,而不是作为初始视图控制器全部内容,希望文章能够帮你解决ios – 如何以编程方式在代码中添加导航控制器,而不是作为初始视图控制器所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)