Swift 如何使用segue维护导航;以“方式”呈现;?
我有:导航控制器->tableViewController->选项卡栏控制器->ViewController1/ViewController2/ViewController3 我单击TableViewController上的一个单元格,然后打开选项卡栏。一切都好 但是,我想从TableViewController中的数据中获得更多细节,所以我决定用单元格的内容弹出一个窗口。我发现这个教程=>很棒!这是关于使用segue“present modally”和包含弹出窗口的viewcontroller。我从弹出窗口链接到tabBarController,失去了导航栏 我试着玩navigationBar,但没有任何效果。我改变了segue的类型,但是我没有得到我想要的 我认为问题来自赛格的类型。如果我像在viewController中使用go/back一样使用它,这没关系。你有没有关于使用这种弹出窗口的解决方案,或者我必须使用另一种方式 > P> >好的,让我们看一看。Swift 如何使用segue维护导航;以“方式”呈现;?,swift,xcode,Swift,Xcode,我有:导航控制器->tableViewController->选项卡栏控制器->ViewController1/ViewController2/ViewController3 我单击TableViewController上的一个单元格,然后打开选项卡栏。一切都好 但是,我想从TableViewController中的数据中获得更多细节,所以我决定用单元格的内容弹出一个窗口。我发现这个教程=>很棒!这是关于使用segue“present modally”和包含弹出窗口的viewcontroller
UIPresentationController
)的特殊对象,负责控制器的显示方式。默认情况下,它会隐藏上一个控制器的视图(我认为是为了性能)viewDidLoad
为时已晚:控制器已经初始化:PopupViewController
成为其自身转换的委托时,这意味着该控制器负责所有转换。在我们的特殊情况下,popup controller提供了presentation controller的自定义版本。像这样:UIPresentationController
)的特殊对象,负责控制器的显示方式。默认情况下,它会隐藏上一个控制器的视图(我认为是为了性能)viewDidLoad
为时已晚:控制器已经初始化:PopupViewController
成为其自身转换的委托时,这意味着该控制器负责所有转换。在我们的特殊情况下,popup controller提供了presentation controller的自定义版本。像这样:就这些。现在您应该看到上一个控制器的视图 将模态呈现的控制器包装到新的导航控制器hello@SergeyGamayunov好的,谢谢。我照你说的做了。它在跑!但是我失去了弹出窗口后面的tableview的效果。有没有办法让它成为可能?我想这是使用这种弹出窗口的目的。。。谢谢你提供前后截图?我不确定我是否理解你correctly@SergeyGamayunov你好,谢尔盖,你有什么解决办法吗?谢谢将模态呈现的控制器包装到新的导航控制器hello@SergeyGamayunov好的,谢谢。我照你说的做了。它在跑!但是我失去了弹出窗口后面的tableview的效果。有没有办法让它成为可能?我想这是使用这种弹出窗口的目的。。。谢谢你提供前后截图?我不确定我是否理解你correctly@SergeyGamayunov你好,谢尔盖,你有什么解决办法吗?谢谢你好@SergeyGamayunov,我刚刚试过你的方法,但没有改变。导航栏总是absentHello@SergeyGamayunov,我刚刚试过你的方法,但没有改变。导航栏总是不存在
class CustomPresentationController: UIPresentationController {
override var shouldRemovePresentersView: Bool {
return false
}
}
class PopupViewController: UIViewController {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
modalPresentationStyle = .custom
transitioningDelegate = self
}
}
extension PopupViewController: UIViewControllerTransitioningDelegate {
func presentationController(forPresented presented: UIViewController, presenting: UIViewController?, source: UIViewController) -> UIPresentationController? {
return CustomPresentationController(presentedViewController: presented, presenting: presenting)
}
}