【问题标题】:How to pass Data from one view controller to another in ios如何在 ios 中将数据从一个视图控制器传递到另一个视图控制器
【发布时间】:2018-06-21 03:48:23
【问题描述】:

我正在尝试将数据从一个视图控制器传递到另一个, 这里我使用按钮来执行segue

 @IBAction func entered(_ sender: UIButton) {
    performSegue(withIdentifier: "segue1", sender: self)
}

我检查了标识符的拼写也正确,当我点击输入按钮时出现错误

2018-06-21 09:08:26.859232+0530 passData2[2886:91217] *** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“-[UITableViewController loadView] 实例化了具有标识符“UIViewController-”的视图控制器故事板“Main”中的 2KP-T7-TXr”,但没有获得 UITableView。'

有人知道为什么会这样

【问题讨论】:

  • 我认为问题不在你的代码中,它应该在你的“主”故事板中,你能发布从“segue1”加载的视图控制器的设置
  • 日志似乎代码中的segue标识符和Main.storyboard不一样,导致冲突。
  • 问题的标题具有误导性。另请提及应用程序崩溃的代码行。你提供的信息很少。请在两个视图控制器中显示更多代码和应用程​​序崩溃的行以及相关代码。

标签: ios segue viewcontroller


【解决方案1】:

第一次检查这些东西......

  • 确保您输入的名称正确。我将遵循的步骤

  • 添加一个 UIViewController/UITableviewcontroller

  • 将其嵌入导航控制器

  • 添加一个tableview(连接数据源并委托和出口它存在)

  • 添加storyboardId

  • 复制粘贴该名称并将其添加到实现推送的代码中

  • 从模拟器构建中删除应用并再次运行。

那就试试这个……

将您的超类更改为 UIViewController 或将情节提要中的控制器更改为 TableViewController

@interface MTViewController : UIViewController, UITableViewDataSource, UITableViewDelegate

@end

供您参考...

在 Swift 中的视图控制器之间传递数据可以通过不同的方式完成,例如:

1   By using an instance property (A → B)
2   By using segues (for Storyboards)
3   By using instance properties and functions (A ← B)
4   By using the Delegation pattern
5   By using a closure or completion handler
6   By using NotificationCenter and the Observer pattern

尝试阅读此link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多