Adakah yang tahu untuk apa ikon Keluar baru digunakan saat mengedit papan cerita menggunakan Xcode 4.5?

100

Mengklik kanan ikon Exit menghasilkan jendela kosong. Tidak dapat Ctrl-seret koneksi ke elemen IB atau file sumber yang sesuai. Dokumen tidak memberikan cinta. Tidak muncul di file nib, hanya storyboard. Asumsi saya adalah wajar untuk segues, tetapi saya tidak melihat metode baru untuk mendukungnya. Siapa saja?

rsswtmr
sumber

Jawaban:

104

Ada banyak informasi dalam video WWDC "Sesi 407 - Mengadopsi Papan Cerita di Aplikasi Anda".

Katakanlah Anda memiliki dua pengontrol tampilan yang dihubungkan dengan segue. Terapkan tindakan keluar berikut pada pengontrol tampilan pertama:

- (IBAction)done:(UIStoryboardSegue *)segue {
    NSLog(@"Popping back to this view controller!");
    // reset UI elements etc here
}

Kemudian, pada adegan Storyboard untuk pengontrol tampilan kedua, Ctrl-seret dari elemen UI, seperti tombol, ke ikon keluar di bagian bawah pengontrol tampilan ini. The done:tindakan Anda ditambahkan ke kode controller pertama akan muncul sebagai opsi. Sekarang, mengaktifkan tombol yang Anda Ctrl-seret ke ikon keluar akan muncul kembali ke pengontrol tampilan pertama dan mempertahankan status aslinya (yaitu elemen UI seperti input teks yang seharusnya masih utuh).

Cal S
sumber
3
Ini benar-benar melepas kembali ke instance yang sama persis dari pengontrol tampilan (dan tampilannya).
Jon Hess
Terima kasih, saya membaca ini hanya untuk mempelajari apa itu "Pintu Keluar Hijau", hanya untuk mengetahuinya menyelesaikan masalah bagi saya. Saya memiliki 2 pengontrol tampilan yang dipisahkan oleh pengontrol TabBar dan pengontrol navigasi, dan "Pop" tidak berfungsi untuk kembali ke belakang. Ini membutuhkan waktu 2 menit dan semuanya bekerja seperti yang Anda katakan! TERIMA KASIH!
user589642
Bagaimana cara memanggil metode tindakan pada Donetombol di kelas tampilan B sebelum keluar kembali ke tampilan A?
ahli
Jika Anda menonton video WWDC, Anda dapat melompat ke 37:15 untuk melihat bagian tentang "segues santai"
moliveira
220

Saya mengalami kesulitan mengikuti jawaban yang diterima jadi di sini lebih detail.

Diberikan foto di bawah ini pada pengontrol tampilan C Anda dapat "keluar" kembali ke pengontrol tampilan mana pun di jalur segue.

masukkan deskripsi gambar di sini

ViewController A, Anda dapat menulis:

- (IBAction)done:(UIStoryboardSegue *)segue {
    // Optional place to read data from closing controller
}

ViewController B Anda dapat menulis:

- (IBAction)back:(UIStoryboardSegue *)segue {
    // Optional place to read data from closing controller
}

ViewController C Anda mengontrol seret dari tombol "kembali" ke opsi keluar hijau dan memilih kembali: ViewController C Anda mengontrol seret dari tombol "selesai" ke opsi keluar berwarna hijau dan pilih selesai: masukkan deskripsi gambar di sini

Catatan: Meskipun metode yang pada tampilan kontroler lain mereka muncul untuk ViewController C exit 's. Kontrol menyeret dan memilih metode menentukan ViewController mana yang akan dilepas.

Eric
sumber
2
Satu catatan lagi: terkadang tombol keluar berwarna hijau tidak aktif bahkan semua langkah sudah selesai. Dalam hal ini, membuka kembali storyboard (atau proyek xcode) membuatnya berfungsi seperti yang diharapkan.
zxcat
3
Masalah lain yang saya miliki adalah bahwa saya tidak memasukkan tanda tangan metode segue yang rileks di file .h atau ekstensi kelas saya. Setelah saya menambahkannya, segue rileks muncul di popup.
Steve Moser
2
+ Infinity untukEven though the methods are on other view controllers they show up for the ViewController C's exit.
Santa Claus
15

Sebagai tambahan jawaban Eric di sini adalah cara kerjanya:

Fungsi yang Anda tambahkan ke pengontrol tujuan terlihat seperti:

@IBAction func backFromOtherController(segue: UIStoryboardSegue) {
    NSLog("I'm back from other controller!")
}
jboi
sumber