2016-06-06 2 views
0

Я уже создал некоторые (статические) QuickActions в Info.plist для моего приложения iOS, созданного в Xcode и написанного в Swift.Как обращаться с static QuickActions для приложения iOS с помощью ViewControllers, управляемого TabBarController в Xcode, написанном в Swift

У меня проблемы с созданием возможности просмотра ViewController. Из-за причины, я уже googled, но ничего не работало для меня. Если это имеет значение: я использую ViewController, управляемый TabBarController. Большинство учебников, похоже, используют NavigationController. Но, я думаю, это будет сделано с помощью segues, не так ли? Какой код мне нужен для его обработки?

Может ли кто-нибудь предоставить его, пожалуйста? Или кто-нибудь знает простое руководство/учебник?

С уважением, Дэвид.

P.S .: Я пробовал этот код, но, похоже, работает только с NavigationController ?! Код:

func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) 
{ 
    self.handleShortcutItem(shortcutItem) 
    completionHandler(true) 
} 

func handleShortcutItem(shortcutItem: UIApplicationShortcutItem) 
{ 
    switch shortcutItem.type { 
    case "icons.quickaction.home": 
     self.presentComposeViewController() 
    default: break 
    } 
} 

func presentComposeViewController() 
{ 
    guard let navigationController = window?.rootViewController as? UINavigationController else { return } 

    let identifier = "MyViewController" 
    let composeViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier(identifier) 

    navigationController.pushViewController(composeViewController, animated: false) 
} 
+0

Не совсем уверен, что вы имеете в виду ... 'UITabBarController' имеет свойство' selectedIndex', которое показывает одно из его видов. –

+0

И какой код мне нужен для обработки моего QuickActions? –

+0

Является ли 'composeViewController' частью' UITabBarController'? –

ответ

0

я, наконец, нашел решение с помощью @ILikeTau.

Я использую следующий код, чтобы открыть мои ViewControllers управляемые с помощью TabBarController с QuickAction:

@available(iOS 9.0, *) 
func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) { 

    if(shortcutItem.type == "app.quickaction.search"){ 
     let sb = UIStoryboard(name: "Main", bundle: nil) 
     let vc = sb.instantiateInitialViewController() 
     window?.rootViewController = vc 
     guard let tabBarController = window?.rootViewController as? UITabBarController else { return }; 
       tabBarController.selectedIndex = 2 
    } 
    else if(shortcutItem.type == "app.quickaction.home"){ 
     let sb = UIStoryboard(name: "Main", bundle: nil) 
     let vc = sb.instantiateInitialViewController() 
     window?.rootViewController = vc 
     guard let tabBarController = window?.rootViewController as? UITabBarController else { return }; 
     tabBarController.selectedIndex = 0 
    } 
} 

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

Смежные вопросы