Ich bin mit Shortcuts auf dem Home-Bildschirm mit 3D Touch, und es funktioniert gut, aber die Art, wie ich es derzeit habe, bedeutet, wenn die Verknüpfung den Benutzer zu einem bestimmten View-Controller nimmt Bar und Navigationsleiste fehlt.Navigation und Tab-Leiste fehlt beim Anzeigen von View-Controller
Dies ist mein Code:
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
}
Kann jemand empfehlen, was ich in den Code ändern müssen?
Dies ist die Steuerbord-Layout (FavouritesTableViewController angegeben):
EDIT:
Hier ist meine aktualisierte Code:
@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
}
wenn sie fehlen, dann werden Sie es aus dem Fenster Stammansicht präsentiert das ist, was Sie jetzt doin. Sie müssen Ihre Tabb-Leiste als rootview erstellen und dann in Ihrer Tableiste anzeigen. –
Wie würde ich das tun? Ich habe meine Frage mit dem Storyboard-Layout aktualisiert. – user3746428