Вы можете найти Top Most View Controller, используя эту функцию.
func topViewController(_ base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? {
if let nav = base as? UINavigationController {
return topViewController(nav.visibleViewController)
}
if let tab = base as? UITabBarController {
if let selected = tab.selectedViewController {
return topViewController(selected)
}
}
if let presented = base?.presentedViewController {
return topViewController(presented)
}
return base
}
Подавать UIAlertController
Используя этот метод через. например,
topViewController()?.present(alertController, animated: true, completion: nil)
Информация о методе: topViewController()
найти вершину. Самый представленный контроллер представления, UIAlertController
класс ужина - UIViewController
.
first UIAlertController
открыто нормально в верхнем представленном контроллере представления, попробуйте открыть второй UIAlertController
, затем topViewController()
, учитывая первое предупреждение. поэтому никакие UIAlertController
не пропустили.
Принятие Вас означает терминал гнома из страницы справочника:
--tab-with-profile=PROFILENAME
Open a tab in the window with the given profile. More than
one of these options can be provided, to open several tabs .
, Который сделал бы сценарий как ~/bin/cool-terminal
:
#!/bin/sh
gnome-terminal --tab-with-profile=edit --tab-with-profile=run ...
с некоторыми сценариями, чтобы вставить профили как
$ cat ~/bin/editor-tab
#!/bin/sh
chdir source_directory
...
exec $SHELL
Не точно как взятие снимка, но это может быть сделано.