Navigation Controller

swift
xcode
ios

#1

Ребята, обязательно ли делать Navigation Controller в приложении, где основная информация будет состоять в Tab Bar Controller и на каждом View? И как подписать сверху каждый View, чтобы пользователь понимал на какой вкладке он находится?


#2

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

private func embedInNavigation(_ controller: UIViewController) -> UINavigationController {
        let navigation = UINavigationController.init(rootViewController: controller)
        navigation.navigationBar.isTranslucent = false
        return navigation
    }

var vc1: UINavigationController!
var vc2: UINavigationController!
var vc3: UINavigationController!
var vc4: UINavigationController!

func viewDidLoad() {
    vc1 = embedInNavigation(ViewController1)
    vc2 = embedInNavigation(ViewController2)
    vc3 = embedInNavigation(ViewController3)
    vc4 = embedInNavigation(ViewController4)

    setViewControllers([vc1, vc2, vc3, vc4], animated: false)
}

Дальше уже, все последующие VC, которые будут появляться из таб бара, будут иметь navigation bar.


#3

А как сверху подписать название View? Вот как тут25


#4

Перетащите на ваш ViewController UINavigationItem


#5

Это то оно? Извини, что задаю тупые вопросы.


#6

Да все верно, пардон, UINavigationBar.
UINavigationItem для кнопки только.


#7

Слушай, а как сделать так, чтобы выглядело на всех устройствах одинаково06


#8

что-то у вас не то. он становится сам автоматом и никуда не заползает. и менять размеры ему в IB нельзя.


#9

Хм, разве само ставится? Я же его сам перетягиваю и ставлю


#10

значит я уже начал тупить под конец дня.
ставьте ему верхний констрейнт не к rootView, а к safeArea = 0


#11

ЫЫЫ, как ето сделать? И где вообще rootView и safeArea = 0


#12

В секции Document Outline (слева, где структура элементов показана), когда раскрываете ваш ViewController, у него идет сперва View (это будет rootView), внутри этого View будет идти SafeArea, соответственно дальше уже будут идти ваши элементы.


#13

:joy::+1::+1::+1: (…)


#14

@ RexHunt говорит об этой панели

Если её у тебя нет нажми на ЭТУ кнопку
44