Не удается получить элемент навигации с помощью CalendarKit - PullRequest
1 голос
/ 28 февраля 2020

Я пытался заставить его работать так:

class CalendarViewController: DayViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        title = "CalendarKit Demo"
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Dark",
                                                            style: .done,
                                                            target: self,
                                                            action: #selector(changeStyle))
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Change Date",
                                                           style: .plain,
                                                           target: self,
                                                           action: #selector(presentDatePicker))
        navigationController?.navigationBar.isTranslucent = false
        dayView.autoScrollToFirstEvent = true
        reloadData()
    }

    @objc func changeStyle() {
        print("clicked change style")
    }

    @objc func presentDatePicker() {
      print("clicked date picker")
    }

    override func eventsForDate(_ date: Date) -> [EventDescriptor] {
        let models = [Happening(startDate: Date(), endDate: Date(timeInterval: 3600, since: Date()), title: "Test Event", location: "on mother earth")]

      var events = [Event]()

      for model in models {
          let event = Event()
          event.startDate = model.startDate
          event.endDate = model.endDate
          let info = [model.title, model.location]
          event.text = info.reduce("", {$0 + $1 + "\n"})
          events.append(event)
      }
      return events
    }
}

struct Happening {
    let startDate: Date
    let endDate: Date
    let title: String
    let location: String

    init (startDate: Date, endDate: Date, title: String, location: String) {
        self.startDate = startDate
        self.endDate = endDate
        self.title = title
        self.location = location
    }
}

Календарь появляется, но я не получаю ни заголовок, ни элементы навигации. Для меня это выглядит так:

enter image description here

Что я здесь не так делаю? Большое спасибо за вашу помощь!

Вопрос на стороне: еще не выяснил, как (или, если вообще возможно, вообще) работать с ним в конструкторе интерфейсов, например, добавлять пользовательский элемент навигации вверху, когда интегрировать его в другое приложение. Это возможно?

1 Ответ

0 голосов
/ 16 марта 2020

начиная с последнего вопроса: Интерфейсный Разработчик в настоящее время не поддерживается. Я рекомендую создать ваш CalendarController в коде. Некоторые функции могут работать с Интерфейсным Разработчиком, хотя их поддержка не гарантируется.

Отсутствует ссылка, что CalendarController не встроен в экземпляр UINavigationController. Вы можете сделать это в файле AppDelegate.swift или SceneDelegate.swift:

import UIKit
import CalendarKit

@UIApplicationMain
final class AppDelegate: UIResponder, UIApplicationDelegate {
  var window: UIWindow?

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    window = UIWindow(frame: UIScreen.main.bounds)
    window?.backgroundColor = UIColor.white
    window?.makeKeyAndVisible()

    let dayViewController = CalendarViewController() // Create a view controller
    // Now create a NavigationController with CalendarController embedded inside
    let navigationController = UINavigationController(rootViewController: dayViewController)
    window?.rootViewController = navigationController

    return true
  }
}

Дайте мне знать, если это поможет вам интегрировать CalendarKit. Кроме того, я был бы рад иметь воспроизводимый тестовый проект, чтобы я мог самостоятельно исследовать проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...