Rumah > Soal Jawab > teks badan
在iOS简单通讯录的教程中,从登录界面到通讯录联系人界面的数据顺传部分的方法如下,根据不同的登录用户名,变换通讯录联系人界面的标题:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
UIViewController *vc = segue.destinationViewController;
vc.title = [NSString stringWithFormat:@"%@的联系人列表",_accountField.text];
}
我的理解是:这个方法新建了一个UIViewController
类的对象vc
,并把segue
的destinationViewController
赋值给了vc
,然后改变了vc
对象的title
,最后也没有返回vc
,和destinationViewController
的title
应该没有关系啊?为什么这样写是正确的呢?
怪我咯2017-04-18 09:15:14
Kaedah ini mencipta vc objek baharu kelas UIViewController
Tiada operasi untuk mencipta VC baharu di sini, tiada peruntukan memori.
UIViewController *vc = segue.destinationViewController;
vc.title = [NSString stringWithFormat:@"%@的联系人列表",_accountField.text];
Kod ini betul-betul sama dengan yang di bawah
segue.destinationViewController.title = [NSString stringWithFormat:@"%@的联系人列表",_accountField.text];
Sudah tentu tidak perlu kembali.
PHP中文网2017-04-18 09:15:14
Jika anda tidak menggunakan segue untuk menjana vc daripada sb, mungkin begini
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"your sb name" bundle:nil];
UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"your vc identifier"];
vc.title = @"your title";
...
present or push vc
Apabila segue memanggil destinationViewController, ia sebenarnya melakukan perkara yang sama Ia menjana vc daripada sb dan mengembalikannya kepada anda
Vc ini adalah sama seperti yang anda hasilkan sendiri
{
vc.title = @"your title";
...
}
present or push vc by segue
PHP中文网2017-04-18 09:15:14
VC bukan baru dibuat, ia hanya penunjuk kepada pengawal pandang sasaran, iaitu pengawal pandang yang hendak dilompat
ringa_lee2017-04-18 09:15:14
(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender Kaedah ini dipanggil semasa menukar antara muka Pada masa ini, segue sudah mengandungi antara muka yang anda ingin pergi, bukan Created pada masa ini. Papan cerita akan mencipta objek viewController yang anda mahu dan memberikannya kepada segue.
UIViewController *vc = segue.destinationViewController;
vc.title = [NSString stringWithFormat:@"%@'s contact list",_accountField.text];
Dua baris kod ini ialah matlamat anda segue VC telah dikeluarkan dan tajuknya telah diubah suai.
Perkara utama ialah memahami bahawa sasaran VC yang anda akan lakukan dibina oleh bar cerita, bukan sesuatu yang anda cipta dan kemudian kembali.