实际上,我的UINavigationBar在整个应用程序中是相同的。为了不在每个视图中使用Xcode和storyboard创建相同的UINavigationBar,我想创建自己的UINavigationBar并在AppDelegate类中实现它。
我在应用程序功能中做的第一件事就是下一步:
mainWindow = storyBoard?.instantiateViewControllerWithIdentifier("MainCtrl") as! ViewController
let navigationItem = UINavigationItem()
navigationBar.barTintColor = UIColor.hexStringToUIColor(pEvenColor)
navigationBar.backgroundColor = UIColor.hexStringToUIColor(pEvenColor)
let searchBar = UISearchBar()
searchBar.sizeToFit()
navigationBar.items = [navigationItem]
mainWindow!.view.addSubview(navigationBar)
这很好用。 UINavigationbar在主视图中显示完美。
我觉得很晚才有可能减少代码并执行类似函数的操作,返回 UINavigationBar 并直接使用它:
mainWindow!.view.addSubview(someClass())
所以,我添加了一个名为 NavigationAppBar 的新Cocoa Touch类,它继承自UINavigationBar,并在 drawRect()函数中设置了所有相同的代码,但这并不是&#39工作。
然后在AppDelegate中:
var myNavBar = NavigationAppBar()
mainWindow!.view.addSubview(myNavBar)
这不起作用。显然,drawRect()方法从不调用,但我不知道做这样的事情的正确方法。我做错了什么,但是,在这种情况下,制作我自己的UINavigationBar(在类或其他东西中)并将其添加到任何视图的正确方法是什么?
对此粘贴所有代码表示遗憾和抱歉。