Wprowadzam skróty ekranu głównego za pomocą 3D Touch i działa dobrze, jednak sposób, w jaki aktualnie go mam, oznacza, że gdy skrót przenosi użytkownika do określonego kontrolera widoku, zakładka Pasek i pasek nawigacyjny brakuje.Brak paska nawigacji i paska kart podczas przedstawiania kontrolera widoku
To jest mój kod:
func handleShortCutItem(shortcutItem: UIApplicationShortcutItem) -> Bool {
var handled = false
if let shortcutType = ShortcutType.init(rawValue: shortcutItem.type) {
let rootViewController = window!.rootViewController
switch shortcutType {
case .Favourites:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let rootController = storyboard.instantiateViewControllerWithIdentifier("favourites") as! FavouritesTableViewController
rootController.parkPassed = DataManager.sharedInstance.getParkByName(NSUserDefaults.standardUserDefaults().stringForKey("currentPark")!)
self.window?.rootViewController = rootController
self.window?.makeKeyAndVisible()
handled = true
}
return handled
}
Może ktoś sugerują, co muszę zmienić w kodzie?
To sterburta układ (FavouritesTableViewController jest wskazany):
EDIT:
Tu jest mój zaktualizowany kod:
@available(iOS 9.0, *)
func handleShortCutItem(shortcutItem: UIApplicationShortcutItem) -> Bool {
var handled = false
if let shortcutType = ShortcutType.init(rawValue: shortcutItem.type) {
switch shortcutType {
case .Favourites:
print("favourites")
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let rootController = storyboard.instantiateViewControllerWithIdentifier("favourites") as! FavouritesViewController
rootController.parkPassed = DataManager.sharedInstance.getParkByName(NSUserDefaults.standardUserDefaults().stringForKey("currentPark")!)
let root = UIApplication.sharedApplication().delegate as! AppDelegate
if let navCont = root.window?.rootViewController?.navigationController {
navCont.presentViewController(rootController, animated: true, completion: nil)
} else {
root.window?.rootViewController?.presentViewController(rootController, animated: true, completion: nil)
}
root.window?.makeKeyAndVisible()
handled = true
}
}
return handled
}
jeśli ich brakuje, to jesteś prezentując je z okna widoku głównego, który jest tym, co robisz teraz. Musisz ustawić pasek tabbowy jako rootview, a następnie przedstawić go w swoim pasku zakładek. –
Jak to zrobić? Zaktualizowałem swoje pytanie za pomocą układu storyboardów. – user3746428