Удаление displayModeButton в UISplitViewController в iOS - PullRequest
1 голос
/ 17 февраля 2020

Я хочу удалить displayModeButton из панели навигации detailViewController в splitveiwconroller. Я попытался установить leftBarButtionItem.isEnable = false в файле AppDelegate.swift (как показано ниже)

if let splitViewController = self.window!.rootViewController as? UISplitViewController {
            let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
            navigationController.topViewController!.navigationItem.leftBarButtonItem?.isEnabled = false
            }

, когда он запускает приложение. Но когда я проведу вправо, чтобы открыть главное представление, а затем проведу влево, чтобы закрыть контроллер основного просмотра, кнопка режима отображения снова появится снова. Пожалуйста, помогите мне скрыть displayModeButton от детального представления контроллера.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

В качестве альтернативы ответу Далджита мы также можем использовать navigationItem.setHidesBackButton на контроллере detailview или использовать его в didFinishLaunchingWithOptions AppDelegate.swift:

if let splitViewController = appDelegate.window!.rootViewController as? UISplitViewController {

let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController!.navigationItem.setHidesBackButton(true, animated: true)
}
0 голосов
/ 17 февраля 2020

Сделайте то же самое в master viewController viewWillAppear:

   let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.window!.rootViewController = controller 
if let splitViewController = appDelegate.window!.rootViewController as? UISplitViewController {

let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController!.navigationItem.leftBarButtonItem?. isEnabled = false
navigationController.topViewController!.navigationItem.leftBarButtonItem?. tintColor = UIColor.clearColor()
     }

ИЛИ, если вышеперечисленное не работает, используйте приведенный ниже код в AppDelegate

navigationController.topViewController!.navigationItem.setLeftBarButton(nil, animated: true)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...