#swift
#swift
Вопрос:
У меня есть конструктор убеждения, который создает подвиды
class HudView: UIView {
var text = ""
class func hud(inView view: UIView,
animated: Bool) -> HudView {
let hudView = HudView(frame: view.bounds)
view.addSubview(hudView)
return hudView
}
}
Чтобы использовать вышесказанное и создать представление, я делаю следующее:
let hudView = HudView.hud(inView: navigationController!.view,
animated: true)
Мой вопрос касается ссылки на текущее представление и передачи его в качестве аргумента. Это единственный способ обратиться к текущему представлению? Мои представления действительно встроены в навигационный контроллер, но должен ли я получить текущее представление таким образом? Я следую учебному пособию.
Спасибо!
Комментарии:
1. Вы задаете слишком много вопросов. Можете ли вы задать один вопрос для каждого сообщения?
Ответ №1:
Из текущего представления я предполагаю, что вы имеете в виду view
из ViewController
, которые в данный момент видны в navigationController
.
Вы можете получить текущее видимое view
вот так,
if let view = navigationController?.viewControllers.first?.view {
let hudView = HudView.hud(inView: view, animated: true)
}
И, если вы пишете этот код в текущем видимом ViewController
, вы можете просто использовать self.view
вместо этого.
let hudView = HudView.hud(inView: self.view, animated: true)
Комментарии:
1. Если у меня есть представление, встроенное в навигационный контроллер, является ли это представление подвидом навигационного контроллера?
2. вы встраиваете контроллеры просмотра в навигационный контроллер, а не только в представление.
3. Еще один последний вопрос здесь? Я хочу создать вспомогательный вид, который охватывает вид контроллера представления и панель навигации над ним. Это то, что меня смущает. В каком виде находится панель навигации (кнопка «Назад», заголовок, кнопка «Готово»). Спасибо! Есть ли у Навигационного контроллера представление?
4. Контроллер навигации встраивает контроллер представления, в котором есть представление. Навигационный контроллер — это своего рода просто контейнер. Итак, добавьте свое представление внутри контроллера представления.
5. Я, наконец, понял это. Спасибо!