/ / Дія сповіщення відкритий перегляд без навігаційного контролера - ios, aim-c, swift, uiviewcontroller, uinavigationcontroller

Дія сповіщення з відкритим представленням без навігації - ios, object-c, swift, uiviewcontroller, uinavigationcontroller

Я роблю додаток, який відкриває детальний вид із натискання сповіщення. У своєму AppDelegate я відкриваю подання, але в перегляді немає контролера навігації.

Тоді я думаю, що моє рішення - це використовувати метод instantiateViewControllerWithIdentifier для управління навігаційним контролером, я не впевнений, чи це рішення, але ось питання щодо назви ...

Мій клас SlideNavigationController є "Objective-C", і коли я використовую метод

let rootVC = UIStoryboard(name: "Main", bundle: nil).
instantiateViewControllerWithIdentifier("SlideNavigationController") as! SlideNavigationController

Я отримую помилку:

попередження: не вдалося завантажити будь-яку інформацію про клас Objective-C. Це значно знизить якість доступної інформації про тип.

Будь-яка ідея? Вибачте за мою англійську, правки вітаються! Дякую

Проблема з моїм UIController вирішена. Ось мій код:

           let rootViewController = self.window!.rootViewController as! UINavigationController
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let targerView = mainStoryboard.instantiateViewControllerWithIdentifier("view_place_detail") as! VCPlaceDetailTour
targerView.placeId = aps as String
rootViewController.pushViewController(targerView, animated: false)

Відповіді:

2 для відповіді № 1

Ви можете зробити з цим кодом.

let rootViewController = self.window!.rootViewController as! UINavigationController
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let targerView = mainStoryboard.instantiateViewControllerWithIdentifier("view Identifier") as! PromotionDetailsVC
rootViewController.pushViewController(targerView, animated: false)

Я сподіваюсь, це допоможе вам.


1 для відповіді № 2

Ви можете програмно створити навігаціюКонтролер і встановіть потрібний контролер подання як його rootViewController навігаційного контролера, а потім встановіть контролер навігації як Windows rootViewController.

наприклад:

let rootVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("SlideNavigationController") as! SlideNavigationController
let window = UIApplication.sharedApplication().keyWindow
window.rootViewController = rootVC

Те саме пояснюється і в цьому посиланні: встановити початковий контролер перегляду в appdelegate - швидко


1 для відповіді № 3

Вам потрібно створити мостиковий заголовок, щоб використовувати об'єктивні контролери c у швидкому проекті.

Перейдіть за посиланням нижче, щоб отримати інформацію про створення мостового заголовка.

Як знайти шлях Bridging-Header.h - Swift, Xcode

Після цього ви повинні імпортувати .h файли контролерів у перехідний файл заголовка.

Тепер ви можете легко використовувати ваш об'єктивний контролер перегляду c у швидкому проекті.