从日历选择器中删除添加日历按钮

Remove Add Calendar button from Calendar Chooser

我如下所示展示我的日历选择器:

let calendarChooser = EKCalendarChooser(selectionStyle: .single,
                                        displayStyle: .writableCalendarsOnly,
                                        entityType: .event,
                                        eventStore: eventStore)
calendarChooser.showsDoneButton = true
calendarChooser.showsCancelButton = true
let navigationController = UINavigationController(rootViewController: calendarChooser)
navigationController.view.tintColor = .orange // change color of navigation controller buttons
self.present(navigationController, animated: true, completion: nil)

我更改了导航控制器按钮 Cancel(左上)、Done(右上)和 Add Calendar(左下)的颜色。事实上,我不需要 Add calendar 功能。我在导航控制器和日历选择器上尝试了 hidesBottomBarWhenPushed = falsetabBarItem = nil。不开心。

问题 1:是否可以删除 Add calendar 按钮?

如果我无法删除 Add Calendar 按钮,我想至少将其 Cancel 按钮(左上角)的颜色也更改为橙色(默认显示为蓝色)。

问题 2:如何更改 Add calendar 控制器上显示的 Cancel 按钮的颜色?

我认为没有任何 public API 可以删除“添加日历”按钮。

按钮的色调由应用程序的全局色调控制。但是,在情节提要中设置全局色调只会影响情节提要中的视图。情节提要中所谓的“全局”色调实际上并不是 全局 色调。

自 iOS14 起,您可以在目标的构建设置中搜索“全局强调色”,将其设置为一个名称,然后在资产目录中使用该名称创建一个颜色集。该颜色随后将成为您应用程序的全局色调颜色。示例:

如果您的项目是使用较新版本的 Xcode 创建的,则此设置应该已经为您设置好,并且资产目录中应该已经有一个名为“AccentColor”的颜色集。

在 iOS 14 之前,您将设置 window.tintColor。查看 this.

的答案

在那之后,你甚至不需要这一行:

navigationController.view.tintColor = .orange