Я пишу приложение для чата.Я хочу получить мои сообщения на заднем плане.Это будет непрерывно.Вот почему я буду использовать executeFetchWithCompletionHandler (если вы знаете лучший способ, вы можете предложить мне).Мой rootViewController - это tabBar .Но я должен использовать этот код для другого контроллера и не могу связаться с ним с AppDelegate .
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
if let tabbarController = window?.rootViewController as? CustomTabBarController{
if let postController = tabbarController.navigationController?.viewControllers.first as? PostsController{
print("itsWorking")
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
//This is my rootViewController
let layout = UICollectionViewFlowLayout()
let postsController = PostsController(collectionViewLayout: layout)
let gezginController = GezginController(collectionViewLayout: layout)
let homeNavController = UINavigationController(rootViewController: postsController)
homeNavController.tabBarItem.title = "Home"
homeNavController.tabBarItem.image = UIImage(named: "home")
navigationController?.pushViewController(gezginController, animated: true)
gezginController.tabBarItem.title = "Gezgin"
gezginController.tabBarItem.image = UIImage(named: "rocket")
viewControllers = [homeNavController,gezginController]
}
Я хочу связаться с PostController из AppDelegate .Но вы должны знать, что PostController является CollectionView, и я использую макет для этого.Вот почему я не могу использовать как PostController (макет: макет) на AppDelegate .На самом деле я этого не хочу.
Спасибо.