cari

Rumah  >  Soal Jawab  >  teks badan

objektif-c - lompat halaman papan cerita dan pemindahan nilai

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中文网2806 hari yang lalu876

membalas semua(1)saya akan balas

  • PHP中文网

    PHP中文网2017-05-02 09:31:33

    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; 
        }
    }

    balas
    0
  • Batalbalas