私は奇妙な行動の理由を見出しました。私たちのアプリをどのように構築して、そのやり方を理解するかについて少し説明が必要です。
まず、大きなViewControllerを使用する代わりに、より小さなチャンクに分割する傾向があります。このようにして、私たちは常に「ビジネスロジック」がどこにあるのか、データソース、アウトレットとアクションなどをどこに見つけるのかを知っています。
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:典型的TableViewControllerこのように構成されています。
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と同じファイルに入れても、それはまだ機能しません。
解決策は、すべての拡張機能を削除し、すべての機能をクラス自体に入れて、それが正常に動作するようにすることでした。それはあまり意味がありません、明らかにバグです。
質問を読んだ場合、ファイル所有者からドラッグして終了したことが分かりました。スクリーンショットには同じものが表示されています。また、プログラムでビューを追加することは本当に間違っています。それはストーリーボードから接続するときにうまく動作します。 –