В моем приложении я использую боковую панель, как в facebook. когда пользователь выталкивает боковую панель, отображается uiimageview. когда пользователь нажимает на изображение, он принимает hm для другого диспетчера представлений. проблема, с которой я сталкиваюсь, заключается в том, что я создал боковую панель программно, а другой вид, к которому я хочу ориентироваться, создается с помощью раскадровки. Таким образом, мое исходное представление создается программно, а целевой вид создается с помощью раскадровки. Так может кто-нибудь объяснить мне, есть ли способ использовать «Segue» в этом сценарии. Так как я не могу создать segue с помощью раскадровки, мне нужно сделать это программно, но даже после многого поискового запроса я не смог найти ответ.Программно создавая Segues в ios swift
ответ
Ну, чтобы получить еще один экземпляр другой раскадровки программно вы можете использовать что-то вроде:
let newController = UIStoryboard(name: "MyStoryboard", bundle: nil).instantiateViewControllerWithIdentifier("MyIdentifier") as! MyViewController
, а затем вы нажимаете на навигационный контроллер, или добавить в качестве контроллера представления ребенка или что-то ...
Если вы не хотите возиться с идентификаторами вы можете просто использовать instantiateInitialViewController
вместо instantiateViewControllerWithIdentifier
Я попытался представить контроллер своего вида так, как вы указали выше, но он изменяет исходный цвет моего контроллера. Я снял флажок с непрозрачным флажком, но все тот же вопрос. Есть идеи? –
Проверьте свойство цвета фона нового контроллера. Из памяти по умолчанию является clearColor, что может быть причиной вашей путаницы. –
может помочь
"userSB" является идентификатором ViewController раскадровка
@IBAction func tapSearchCriteria(_ sender: Any?) {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let aVC = storyboard.instantiateViewController(withIdentifier: "userSB") as? AViewController
aVC?.modalPresentationStyle = UIModalPresentationStyle.custom
aVC?.transitioningDelegate = self
aVC?.udelegate = self
self.present(aVC!, animated: true, completion: nil)
}
Возможный дубликат [Сделать SEGUE программно в Swift] (http://stackoverflow.com/questions/35349174/make-segue-programmatically-in-swift) – user6788419