objective-c - storyboard页面跳转和传值
PHP中文网
PHP中文网 2017-05-02 09:29:33
0
1
806

网上查了一些文章,找到一些storyboard页面跳转和传值的方法,试了一下,有一些有用,有的没用,现归纳如下(页面A跳转到页面B),
跳转的方法:
1、A中有button等控件,直接按住control键拖拽到B,点击button可实现跳转;
2、按住control直接将A和B链接,选中连线添加Identifier(命名为c吧)。为A中的button创建action,action里实现方法[self performSegueWithIdentifier:@"c" sender:nil];可实现跳转

传值方法:
1、在prepareForSegue里面实现,根据连线Identifier。传值成功
2、在action里面实现,通过storyboard id找到要跳转的页面,实现跳转和传值UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ReceiveViewController *B = [storyboard instantiateViewControllerWithIdentifier:@"IdReceive"];
B.name = @"GC";
B.age = 10;
[self.navigationController pushViewController:receive animated:YES];

这种方法传值没有成功,页面也不能跳转,因为A是viewcontroller不是navigationController,所以我将最后一句改成[self performSegueWithIdentifier:@"c" sender:nil];跳转可以了,但是传值失败。

请教各位高手,通过storyboard id怎么跳转怎么传值?谢谢!

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