有一个View_A(UICollectionViewController
& UICollectionViewCell
)和View_B(UIViewController
)。当我在Segue
中使用StoryBoard
触摸View_A中的一个单元格时,我想切换到View_B。
在StoryBoard
中,我将View_A和View_B与标识为Push Segue
的{{1}}相关联。
并且switchViews的功能运行良好。
使用SegueToView_B
,我不需要添加BackButton(Push Segue
)来返回View_A,因为有一个' NavigationItem'由系统自动装箱。我尝试了其他类型的segue,例如NavigationItem
,Modal
,而Popover
并非自动创建。我想问为什么?
我想为系统自动创建的NavigationItem
设置特定颜色,而不是默认蓝色,但我找不到它。之后,我只是在NavigationItem
中设置了颜色,但它没有用。请告诉我们如何设置它的特定颜色?
prepareForSegue()
感谢您的帮助。
Ethan Joe
答案 0 :(得分:3)
为该导航栏设置tintColor
:
myOtherCardViewController.navigationBar.tintColor = .whiteColor()
使用Modal或PopOver时为什么没有导航栏?因为这就是Modal和Popover的工作原理!您必须为要与Modal segue连接的视图创建另一个导航控制器,如下所示:
我使用的另一种技术是创建单个NavigationController类,并设置所有需要的属性(颜色,字体等),然后将Storyboard中的所有NavigationControllers链接到该NavigationController类。
这样你就不必重新配置每个NavigationController。
答案 1 :(得分:1)
您的解决方案
您可以使用此viewDidLoad
方法在View_B控制器中隐藏隐藏按钮。
class View_BViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.hidesBackButton = true;
// Do any additional setup after loading the view.
}
}
要设置色调颜色,您必须创建UINavigationController
的子类,并将该类分配给UIStoryboard
中的UINavigationController
您的子类将如下所示,以设置色调,
class navigationController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
//self.navigationBar.barStyle = UIBarStyle.Default
self.navigationBar.tintColor = UIColor.redColor()
// Do any additional setup after loading the view.
}
//Other stuff
}
愿这对你有帮助!!