#ios #swift #uinavigationcontroller
#iOS #swift #uinavigationcontroller
Вопрос:
fileprivate func test() {
guard let w = self.view.window else {
print("no window")
return
}
guard let rootvc = w.rootViewController as? UINavigationController else {
print("no rootvc")
return
}
for vc in rootvc.childViewControllers {
print("CHILD (vc)")
}
for vc in rootvc.viewControllers {
print("VC (vc)")
}
}
приведенный выше код показывает то же самое. Но в чем разница между childViewControllers
и viewControllers
?
Ответ №1:
Согласно документации:
public var childViewControllers: [UIViewController] { get }
childViewControllers: массив контроллеров представления, которые являются дочерними элементами текущего контроллера представления. (только для чтения). Это свойство не включает в себя какие-либо представленные контроллеры представления. Это свойство предназначено только для чтения реализацией пользовательского контроллера представления контейнера.
var viewControllers: [UIViewController] { get set }
ViewControllers: контроллеры просмотра, которые в настоящее время находятся в стеке навигации.
ПРИМЕЧАНИЕ: У A ViewController
также есть childViewControllers
свойство. но viewControllers
свойство, определенное в UINavigationController
.
Ответ №2:
ViewControllers
The view controllers currently on the navigation stack.
где ChildViewControllers
находятся An array of view controllers that are children of the current view controller
.
Корневой контроллер представления имеет индекс 0 в массиве, контроллер заднего вида имеет индекс n-2, а верхний контроллер имеет индекс n-1, где n — количество элементов в массиве. Назначение нового массива контроллеров представления этому свойству эквивалентно вызову метода setViewControllers:animated: с параметром animated, установленным в false.
ChildViewControllers
свойство не включает в себя какие-либо представленные контроллеры представления. Это свойство предназначено только для чтения реализацией пользовательского контроллера представления контейнера.
Вы можете легко получить описание об этом Alt Click
по синтаксису!!