objektif-c - lompat halaman papan cerita dan pemindahan nilai
PHP中文网
PHP中文网 2017-05-02 09:29:33
0
1
833

Saya menyemak beberapa artikel dalam talian dan menemui beberapa kaedah untuk lompatan halaman papan cerita dan pemindahan nilai. Ada yang berguna dan ada yang tidak dirumuskan seperti berikut (halaman A melompat ke halaman B),
Kaedah lompat:
1 butang dan kawalan lain, terus tahan kekunci kawalan dan seret ke B, klik butang untuk melompat
2. Tahan kekunci kawalan untuk menyambung terus A dan B, pilih sambungan dan tambah Pengecam (namakannya c; ). Buat tindakan untuk butang dalam A dan laksanakan kaedah [self performSegueWithIdentifier:@"c" sender:nil]; dalam tindakan untuk mencapai lompatan

Kaedah lulus nilai:
1 Dilaksanakan dalam prepareForSegue, berdasarkan Pengecam sambungan. Nilai diluluskan dengan jayanya
2. Laksanakannya dalam tindakan, cari halaman untuk melompat melalui id papan cerita, sedar lompatan dan lulus nilai UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ReceiveViewController *B = [storyboard instantiateViewControllerWithIdentifier:@"IdReceive"];
B.name = @"GC";
B.umur = 10;
[self.navigationController pushViewController:terima animasi:YA];

Kaedah ini gagal melepasi nilai, dan halaman tidak boleh melompat, kerana A ialah pengawal pandangan dan bukan navigationController, jadi saya menukar ayat terakhir kepada [self performSegueWithIdentifier:@"c" sender:nil]; OK, tetapi pemindahan Nilai gagal.

Saya ingin bertanya kepada semua pakar, bagaimana untuk melompat dan memindahkan nilai melalui id papan cerita? Terima kasih!

PHP中文网
PHP中文网

认证0级讲师

membalas semua(1)
Ty80
  1. Adakah A anda diletakkan di dalam navigationviewcontroller maka tidak perlu menukar ayat terakhir

  2. Jika ia tiada dalam navgationviewcontroller, ia bergantung pada cara anda mahu memaparkan B anda. Contohnya, jika ia hadir, anda boleh [self presentViewController:B animated:YES completion:nil]

  3. Jika anda ingin menggunakan [self performSegueWithIdentifier:@"c" sender:nil]; dengan cara ini, anda tidak perlu mendapatkan B viewcontroller dalam tindakan Kod tersebut diubah suai seperti berikut

- (void)someButtonClicked:(id)sender {
  [self performSegueWithIdentifier:@"c" sender:nil]
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(nullable id)sender {
 if([segue.identifier isEqualToString:@"c"]){
    ReceiveViewController *B = segue.destinationViewController;
    B.name = @"GC"; 
    B.age = 10; 
    }
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan