我无法与最新的Xcode 8.1通用汽车公司合作。我只是想知道我是唯一一个,还是其他人在经历同样的事情。我像以前一样设置了视图控制器,它在Xcode 8.0中工作,但是现在我没有运气了。试着打扫等等,但什么也帮不上。我希望其他人也能在我提交雷达之前对它进行测试.
首次实例化该view controller的view controller具有以下代码:
@IBAction func unwindToSettingsTableViewController(_ segue: UIStoryboardSegue) {
print("unwind")
}我也尝试了没有下划线,但这没有帮助。在设置此选项时,您应该能够从文件所有者中ctrl拖动到退出,并启动解压segues:

所以,要么我做错了(我不这么认为,它以前工作得很好),要么是Xcode 8.1中有一个bug
我试着在一个新项目中做同样的事情,然后它就正常工作了。所以我想我的项目或故事板文件有问题。
更新
因为故事板包含的场景很小,所以我只是删除了它,然后再重新创建它,使用相同的类来处理视图控制器等等。现在起作用了。因此,拥有完全相同的代码,但一个新鲜的故事板,使我认为这是一些错误。
发布于 2016-10-26 17:52:59
我找到了奇怪行为的原因。它需要一点解释,我们如何构建我们的应用程序,以了解如何和为什么。
首先,与其拥有大的ViewControllers,我们更倾向于将它们分成更小的块。这样,我们总是知道“业务逻辑”在哪里,在哪里可以找到数据源、出口和操作等等。典型的TableViewController如下所示:
SampleTVC.swift
class SampleTableViewController: UITableViewController {
@IBOutlet var someLabel: UILabel!
@IBOutlet var someButton: UIButton!
@IBAction func unwindHere(_ segue: UIStoryBoardSegue) {
doSomething()
}
}SampleDelegate+DataSource.swift
extension SampleTableViewController {
override func numberOfSections(in tableView: UITableView) -> Int
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
}SampleFetchedResultsController.swift
extension SampleTableViewController: NSFetchedResultsControllerDelegate {
var fetchedResultsController: NSFetchedResultsController<Item>
func controllerWillChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>)
func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChange sectionInfo: NSFetchedResultsSectionInfo, atSectionIndex sectionIndex: Int, for type: NSFetchedResultsChangeType)
func controller(_ controller: NSFetchedResultsController<NSFetchRequestResult>, didChange anObject: Any, at indexPath: IndexPath?, for type: NSFetchedResultsChangeType, newIndexPath: IndexPath?)
func controllerDidChangeContent(_ controller: NSFetchedResultsController<NSFetchRequestResult>)
}我在这里尝试将代码与由这些较小的比特组成的TVC连接起来,没有办法,不会弹出回放。
因此,将所有的扩展名放在与SampleTableViewController相同的文件中,仍然无法工作。
解决方案是删除所有扩展,并将所有函数放入类本身,然后按其应有的方式工作。这没什么意义,这显然是个错误。
发布于 2016-10-26 14:16:44
今天早上我也发生了同样的事。我的问题是,我正在创建的@IBAction被翻译成不同名称的Storyboard,在您的例子中,这个名称是:
"unwindToSettingsTableViewControllerWithSegue"

我所做的是删除属性检查器中的"WithSegue“部分,一切都按预期进行。我不知道这是否是一个bug,或者是不是发生在你身上的事情。
希望能帮上忙。
发布于 2016-11-13 10:11:18
我对我的项目也有同样的问题--但它似乎是一个项目范围的错误。
我可以创建一个新的项目,并且创建一个解压单元没有问题,但是即使在我当前的项目中创建一个新的故事板,只有NavigationController和两个ViewControllers --反卷子--也不会出现在“退出”按钮上。
这是一个非常恼人的错误,因为它使我的项目尖叫停止。
https://stackoverflow.com/questions/40264022
复制相似问题