Как создать навигационную панель в UITableViewController в Swift?

Я новичок в IOS,

Я хотел бы добавить UINavigationBar в UITableViewController, я пробовал это:

var navBar: UINavigationBar = UINavigationBar(frame: CGRect(x:0, y:0, width:320, height:80))

тогда

self.view .addSubview(navBar)

Спасибо

10 голосов | спросил Tim 10 J000000Thursday14 2014, 05:38:34

3 ответа


0

Вы не можете просто добавить NavigationBar в UITableViewController вот так.

Самый простой способ иметь UINavigationController и NavigationBar это сделать из раскадровки.

Шаги: -

  1. Перетащите объект UITableViewController из Библиотеки объектов в раскадровку.

  2. Выделите UITableViewController , перейдите в Изменить -> Вставить в -> Контроллер навигации , как на снимке экрана ниже: - введите описание изображения здесь

  3. Перейдите в Файл -> Новый -> Файл .. -> iOS -> Класс Touch Cocoa и создайте пользовательский класс TableViewController, как показано на снимке экрана ниже: введите описание изображения здесь

  4. Наконец, вернитесь к раскадровке и выделите объект UITableViewController. Под инспектором идентичности выберите только что созданный пользовательский класс, как показано на снимке экрана ниже: - введите описание изображения здесь

Вы можете делать все, что захотите, с файлом пользовательского класса. Вы также можете добавить пользовательский класс UINavigationController, если хотите, и можете присоединить пользовательский класс к объекту внутри раскадровки.

ответил Ricky 10 J000000Thursday14 2014, 06:09:18
0

Если это просто случай показа модального стиля UITableViewController с панелью навигации, самый простой способ сделать это из кода значит представить UINavigationController с вашим UITableViewController как rootViewController:

Представление контроллера представления:

let sourceSelectorTableViewController = SourceSelectorTableViewController()
let navigationController = UINavigationController(rootViewController: sourceSelectorTableViewController)

self.presentViewController(navigationController, animated: true, completion: nil)

Целевой модальный UITableViewController:

override func viewDidLoad() {
    super.viewDidLoad()

    self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Cancel", style: UIBarButtonItemStyle.Plain, target: self, action: "cancel")
    self.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Done, target: self, action: "done")
    self.title = "Pick a Source"
}
func cancel() {
    self.dismissViewControllerAnimated(true, completion: nil)
}

func done() {
    //save things
    self.dismissViewControllerAnimated(true, completion: nil)
}
ответил Albert Bori 20 Jpm1000000pmWed, 20 Jan 2016 20:49:20 +030016 2016, 20:49:20
0

Ну, лучшим решением будет представление

  

UITableViewController

as

  

UINavigationController

        let topicsList = TopicsListViewController()
        let topicsListNavContrl = UINavigationController(rootViewController: topicsList)

        presentViewController(topicsListNavContrl, animated: true) { () -> Void in
            print("completed")
        }
ответил arango_86 19 J0000006Europe/Moscow 2016, 08:48:12

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132