Tampilan tabel statis di luar UITableViewController

159

Setelah pembaruan Xcode baru, aplikasi saya tidak memvalidasi dan menunjukkan kesalahan ini:

tampilan tabel statis hanya valid ketika disematkan dalam instance UITableViewController

Adakah peluang untuk diselesaikan dengan mudah?

Francesco S
sumber
Bergantung pada mengapa Anda menggunakan subkelas UIViewController alih-alih UITableViewController.
David Berry
3
Karena saya memerlukan elemen lain di dalam tampilan yang bukan milik UITableViewController
Francesco S
1
Mengalami masalah yang sama di sini. Baru saja ditingkatkan (atau diturunkan versi, sepertinya) sejauh ini ke Xcode 5.1 dan saya memiliki masalah yang sama. Saya memiliki banyak sel statis di subkelas UITableViewController di dalam UISplitViewController saya.
Stefan Arambasich
Mulai terjadi untuk saya juga setelah peningkatan. Saya punya beberapa view controller yang dibangun dengan sel statis, itu tidak ideal tetapi berfungsi baik sebelumnya.
jdmunro
Anda tidak perlu menggunakan UITableViewController. Anda mendapatkan kesalahan ini jika Anda memiliki sel tampilan tabel statis di UiTableView Anda, jadi saya pikir satu solusi mudah adalah jika Anda membutuhkan sel, jangan biarkan itu statis. Cukup tambahkan delegasi tableview dan sumber data serta metode UITableViewDelegate dummy
EarlySun

Jawaban:

341

Satu-satunya cara untuk mendapatkan UITableView statis bersama dengan kontrol lain pada layar yang sama adalah dengan menggunakan Tampilan Kontainer. Ikuti cara ini, ini berfungsi dengan sempurna:

  1. Seret ViewController ke papan cerita Anda.
  2. Seret TableViewController ke papan cerita Anda.
  3. Selanjutnya Seret tampilan Kontainer ke ViewController Anda dan ukur ukurannya sesuai ukuran yang Anda inginkan (lebih kecil dari tampilan) -> ketika Anda menyeret tampilan kontainer itu akan membuat segue dan tampilan lain. Hapus segue itu dan lihat.
  4. Kemudian akhirnya ctrl klik di wadah Anda dan seret ke TableViewContoller baru Anda. Pilih Sematkan.
  5. Gaya TableView Anda seperti yang Anda inginkan -> termasuk sel statis.

Semoga berhasil.

Jawaban ini sudah ditemukan dan diberikan di sini: G. Huebner -> http://web.archive.org/web/20140928102504/http://iphonedevsdk.com/forum/iphone-sdk-development/111800-static-table- view-cells-only-work-in-a-uitableviewcontroller.html

LukeSideWalker
sumber
Di mana harus mengambil outlet atau bertindak? Dalam UIViewControlleratau harus saya harus mengambil UITableViewController.
Bhavin Ramani
@ Bhavin Ramani: Karena ini adalah UITableViewController di dalam wadah, saya sarankan untuk mengambil kelas / subkelas dengan tepat untuk memegang IBOutlets Anda.
LukeSideWalker
2
Saya kira seluruh ide "sel statis" diimplementasikan dengan cara yang tergantung pada beberapa fungsi internal UITableViewController.
Nicolas Miari
2
Terima kasih untuk ini. Dapat mengonfirmasi itu berfungsi di Xcode 8.3.1.
Atharva Vaidya
Menakjubkan! Saya mencari solusi ini untuk sementara waktu sekarang.
Jason Foglia
8

UITableView statis harus dalam UITableViewController. Jadi Anda harus meletakkan tabel di UITableViewController dan kemudian menambahkannya sebagai childView ke MainViewController.

Anda dapat merujuk https://iphoneidoit.blogspot.in/2013/10/static-uitableview-in-uiviewcontroller.html

Sahana Kini
sumber
1
Ada banyak cara untuk mengatasi hal ini sebelumnya, (seperti mempertahankan sel), tetapi sekarang ini merupakan kesalahan. Saya pikir pertanyaannya adalah jika ada cara untuk menekan kesalahan.
Matthew Knippen
Ya itu. Sayangnya, saya akhirnya memecahkan masalah menggunakan tableView non-statis
Francesco S
1
Astaga. Jumlah pengerjaan ulang yang harus dikonversikan menjadi tidak statis karena semua yang ada IBOutletdalam file pengontrol tampilan saya terlalu banyak, dan IMO tidak dapat diterima untuk pemutakhiran untuk memecahkan ini tanpa peringatan atau catatan ini di log perubahan ( ergo Saya menganggap itu masih berlaku di atas kertas untuk memiliki UITableViewControllersel statis di dalam A. UISplitViewContollerSaya telah menghubungi dukungan pengembang Apple dan hanya menerima tanggapan email yang secara umum tidak begitu membantu menghubungkan saya ke forum. Saya kira saya akan mencoba di sana dan melihat jika ada orang lain yang memiliki masalah yang sama pasca-pembaruan
Stefan Arambasich
4

Saya pikir apa yang Anda lakukan adalah Anda pertama-tama menyeret ViewController di storyboard dan kemudian menyeret tableView pada ViewController. Dengan cara ini Anda tidak bisa menggunakan sel tabel statis. Alih-alih ini yang seharusnya Anda lakukan adalah Seret TableViewController pada storyboard utama alih-alih ViewController dan kemudian pilih sel statis. Dengan cara ini Anda bisa dapat bekerja pada sel statis dan dapat menggunakan elemen apa pun pada sel statis.

hellosheikh
sumber
0

Nah, jika Anda benar-benar menggunakan tableView statis, Anda harus mempertimbangkan menyalin / melewati semuanya ke ScrollView atau StackView.

River2202
sumber