gpt4 book ai didi

ios - swift : Segue(modal) to a UITableViewController which embeded in antoher navigation controller

转载 作者:可可西里 更新时间:2023-11-01 05:33:53 25 4
gpt4 key购买 nike

背景:我想显示从 UITableViewController(A) 到 UITableViewController(B) 的模态转场,但我想显示 NavigationBar 以“取消”和“保存”。


我做了什么:
在 Storyboard中:

  1. 我按住 ctrl 将单元格从 A 拖到 B,并设置 segue identifer "selectItem"
  2. 我选择B,然后选择“编辑器-嵌入-导航 Controller ”

在 A 的 ViewController 中:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifer == "selectItem" {
if let indexPath = self.tableView.indexPathForSelectedRow() {
let destinationViewController = segue.destinationViewController as B
// Pass value from A to B
}
}
}

storyboard


错误:应用程序在 let destinationViewController = segue.destinationViewController as B 处崩溃,错误为 swift_dynamicCastClassUnconditional。如果我没有在 B 中嵌入导航 Controller ,程序就不会崩溃。但我真的需要一个导航栏。
有什么解决方案或其他方法可以实现这一目标吗?谢谢! error 1 enter image description here


PS:我尝试从 Storyboard 中的对象库中拖出一个 NavigationBar,但是它缺少了一部分背景来覆盖状态栏...

最佳答案

  1. 在 Storyboard中创建两个 UITableViewController
  2. 选择您的第二个 UITableViewController(您想要以模态方式呈现的那个),并将其嵌入到 UINavigationController 中。
  3. 将“取消”和“保存UIBarButtonItem添加到第二个UITableViewController的UINavitionItem
  4. 选择第一个 UITableViewControllerUITablViewCell
  5. Control+拖动到您的UINavigationController
  6. 在下拉列表的“Selecteion Segue”选项下选择“Present Modally”。
  7. 要在您的第一个 UITableViewController 中传递数据,请重写该方法:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if segue.identifier == "identifier" {
let destination = segue.destinationViewController as UINavigationController
let bViewController = destination.topViewController as BViewController

// pass data
}
}

截图如下:

enter image description here enter image description here

这应该可以完成工作,干杯!

关于ios - swift : Segue(modal) to a UITableViewController which embeded in antoher navigation controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28249356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com