导航控制器和标签栏控制器
Navigation Controller and Tab Bar Controller
非常卡在一个问题上
我在导航控制器中有一个标签栏控制器
第一个选项卡上有一个日历(基本上是一个集合视图)
我正在尝试制作一个 rightbarbuttonitem 以滚动到今天的日期
我似乎只能在 tabbarcontroller 中创建按钮
我调用的函数然后在 CalendarViewController 中调用一个
但它似乎不起作用
在 tabbarcontroller 中实现条形按钮项的正确方法是什么?
在 tabbarcontroller 我有...
navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .bookmarks, target: self, action: #selector(goToToday))
@objc func goToToday() {
print("pressed")
CalendarViewController().goToToday()
}
在我的 CalendarViewController 中...
@objc func goToToday(_ animate: Bool = true) {
print("tapped")
calendarView.scrollToDate(Date(),animateScroll: animate)
calendarView.selectDates([Date()])
title = "Test"
}
如果我从 CalendarViewController 中的按钮调用该函数,该函数将起作用。从导航控制器调用时,我得到了两个打印命令,仅此而已
您应该在用作第一个选项卡的实例上调用 gotToToday
,而不是像您在此处所做的那样在新实例上调用。在 TabBarController 的 gotToToday
中,您需要执行以下操作:
@objc func goToToday() {
print("pressed")
if let calendarViewController = viewControllers[0] as? CalendarViewController {
calendarViewController.goToToday()
}
}
非常卡在一个问题上 我在导航控制器中有一个标签栏控制器 第一个选项卡上有一个日历(基本上是一个集合视图) 我正在尝试制作一个 rightbarbuttonitem 以滚动到今天的日期
我似乎只能在 tabbarcontroller 中创建按钮 我调用的函数然后在 CalendarViewController 中调用一个 但它似乎不起作用
在 tabbarcontroller 中实现条形按钮项的正确方法是什么?
在 tabbarcontroller 我有...
navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .bookmarks, target: self, action: #selector(goToToday))
@objc func goToToday() {
print("pressed")
CalendarViewController().goToToday()
}
在我的 CalendarViewController 中...
@objc func goToToday(_ animate: Bool = true) {
print("tapped")
calendarView.scrollToDate(Date(),animateScroll: animate)
calendarView.selectDates([Date()])
title = "Test"
}
如果我从 CalendarViewController 中的按钮调用该函数,该函数将起作用。从导航控制器调用时,我得到了两个打印命令,仅此而已
您应该在用作第一个选项卡的实例上调用 gotToToday
,而不是像您在此处所做的那样在新实例上调用。在 TabBarController 的 gotToToday
中,您需要执行以下操作:
@objc func goToToday() {
print("pressed")
if let calendarViewController = viewControllers[0] as? CalendarViewController {
calendarViewController.goToToday()
}
}