Xcode - Berikan properti untuk melihat pengontrol di storyboard

Saya ingin meneruskan properti ke pengontrol tampilan yang dibuat dari tampilan wadah di storyboard. Masalahnya adalah saya tidak tahu bagaimana saya bisa melakukannya.

Persegi panjang biru adalah area di mana saya memiliki dua tampilan kontainer, masing-masing merujuk ke pengontrol tampilan (satu adalah pengontrol tampilan tabel khusus di atas dan saya tertarik dan yang lainnya ke pengontrol tampilan di bawah).

Masalahnya adalah pengontrol tampilan tabel khusus saya memerlukan beberapa properti. Saya ingin meneruskan properti dari kelas tempat saya membuat instance Storyboard (storyboard dipanggil dari kelas berikutnya). Pengontrol tampilan yang berisi tampilan kontainer dipakai seperti yang ditunjukkan di bawah ini:

masukkan deskripsi gambar di sini

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Phenotype" bundle:nil];
        GeneralViewController *vc = [sb instantiateViewControllerWithIdentifier:@"phenotype"];
        [vc setProperty:property]; // I would like to pass this property to the custom table view controller.
        [self.navigationController pushViewController:vc animated:YES];

Saya mencoba untuk mendapatkan pengontrol tampilan tabel dari kelas tempat saya membuat instance stroyboard untuk mengatur properti saat ini

TableViewController *tablevc = [sb instantiateViewControllerWithIdentifier:@"table"];
    [tablevc setProperty:property];

...tapi tidak berhasil.

Adakah yang tahu bagaimana saya bisa mengakses properti dari pengontrol tampilan tabel khusus langsung dari pengontrol tampilan yang membuat instance storyboard?

Terima kasih atas bantuan Anda,


person Trichophyton    schedule 14.03.2017    source sumber


Jawaban (1)


Pilih segue semat Anda dari persegi panjang biru ke tableView di atas dan berikan pengidentifikasi segue :) katakanlah pengidentifikasi segue adalah "abcd".

Di ViewController Anda yang memiliki wadah tulis

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "abcd" {
            let tableView : YourTableViewClass = segue.destination as! YourTableViewClass
            //pass whatever params want :)
        }
    }

EDIT

Segue yang tertanam berperilaku seperti segue lainnya dengan satu pengecualian bahwa segue lain Anda harus menjalankannya baik secara terprogram atau memicu beberapa peristiwa sedangkan segue yang tertanam dieksekusi secara otomatis ketika sebuah wadah dimuat :)

Jadi Anda dapat memiliki pengenal segue, tulis kode di prepForSegue sama seperti Anda melakukannya untuk segue lainnya :)

person Sandeep Bhandari    schedule 14.03.2017
comment
Terima kasih banyak! Anda membuat hari saya menyenangkan :-). Saya tidak pernah menjadi penggemar berat storyboard dan saya tidak pernah benar-benar membahas hal-hal ini secara mendetail. Terima kasih!! - person Trichophyton; 14.03.2017
comment
Saya senang jawaban saya bermanfaat bagi Anda :) selamat coding - person Sandeep Bhandari; 14.03.2017