麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

iOS基礎(chǔ)控件UINavigationController中的傳值

2019-11-14 19:08:47
字體:
供稿:網(wǎng)友

iOS基礎(chǔ)控件UINavigationController中的傳值,代理傳值,正向傳值,反向傳值

 

#import <UIKit/UIKit.h>//聲明一個(gè)協(xié)議@PRotocol SendValue<NSObject>//定義一個(gè)方法- (void)sendBtnTitle:(NSString *)title;@end@interface FirstViewController : UIViewController// 定義代理@property (nonatomic, assign) id <SendValue>delegate;// 創(chuàng)建一個(gè)正向傳值的屬性@property (nonatomic,copy) NSString *currentTitle;@end

 

 

 

- (void)didButton{    NSArray *btntitles = [NSArray arrayWithObjects:@"按鍵一",@"按鍵二",@"按鍵三", nil];        for (int i=0; i<btntitles.count; i++) {        UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];        //改變按鍵字體顏色        [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];        [btn setTitle:[btntitles objectAtIndex:i] forState:UIControlStateNormal];
// 如果按鈕的標(biāo)題和屬性中的 _currentTitle 相同,即和根頁面中的導(dǎo)航條的 title 一樣 
if([_currentTitle isEqualToString:btn.currentTitle]){
//開啟選中狀態(tài) btn.selected
= YES; btn.tintColor = [UIColor whiteColor]; } [btn setTitleColor:[UIColor redColor] forState:UIControlStateSelected]; [btn addTarget:self action:@selector(titlebtnClicked:) forControlEvents:UIControlEventTouchUpInside]; btn.frame = CGRectMake(80, 140+60*i, self.view.frame.size.width-160, 40); btn.backgroundColor = [UIColor whiteColor]; [self.view addSubview:btn]; }}- (void)titlebtnClicked:(UIButton *)btn{ NSString *title = btn.currentTitle;

    // 判斷代理中是否有 sendBtnTitle :這個(gè)函數(shù)

    if ([_delegate respondsToSelector:@selector(sendBtnTitle:)]){

        // 代理 執(zhí)行自己的 sendBtnTitle 函數(shù),傳參是 title

       [_delegate sendBtnTitle:title];

    }

    NSLog(@"%@",title);    [self.navigationController popViewControllerAnimated:YES];    }
#import <UIKit/UIKit.h>#define C(a,b,c,d) [UIColor colorWithRed:a/255.0 green:b/255.0 blue:c/255.0 alpha:d/255.0]#define IMG(name) [UIImage imageNamed:name]#import "FirstViewController.h"//將協(xié)議掛過來@interface rootViewController : UIViewController<SendValue>@end
- (void)btnClicked{    FirstViewController *first = [[FirstViewController alloc] init];    //將當(dāng)前頁面的navigationItem.title傳遞進(jìn)去    //正向傳值    first.currentTitle = self.navigationItem.title;    //將代理指定為當(dāng)前rootViewController類的指針    first.delegate = self;    [self.navigationController pushViewController:first animated:YES];}//實(shí)現(xiàn)協(xié)議定義的方法- (void)sendBtnTitle:(NSString *)title{    self.navigationItem.title = title;}

頁面?zhèn)髦担?/p>

正向傳值利用是屬性傳值;

反向傳值利用代理傳值;


屬性傳值:如果從A頁面往B頁面?zhèn)髦担贐頁面中聲明屬性,在A頁面中跳轉(zhuǎn)事件中給B頁面的屬性賦值;
從后一個(gè)頁面返回前一個(gè)頁面不會(huì)執(zhí)行前面頁面的loadView和viewDidLoad方法,而是執(zhí)行viewWillAppear方法,因?yàn)椋琹oadView和viewDidLoad方法的作用是將視圖加載到內(nèi)存,而從后一個(gè)頁面返回時(shí),前一個(gè)頁面已經(jīng)加載到內(nèi)存,所以不用再次加載,所以不執(zhí)行l(wèi)oadView和ViewDidLoad方法;

 

代理傳值:和代理設(shè)計(jì)模式一樣,按照設(shè)置代理,遵循協(xié)議的那四步來就行,

     /*

     1,定義協(xié)議  (BaoMuProtocol)

     2,遵循協(xié)議的類  (Nurse)

     3.定義需要代理的類  (Mother)

     4.建立關(guān)系   (Mother中定義一個(gè)代理類型的成員變量)     

     */


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 日韩黄色一级视频 | 精品一区二区三区毛片 | 91精品中文字幕 | 91久久极品少妇韩国 | 99re久久最新地址获取 | 久久无| 麻豆19禁国产青草精品 | 精品一区二区免费 | 99最新地址| av在线免费看网址 | 欧美日韩在线视频一区 | 涩涩激情网 | 羞羞色院91精品网站 | 免费视频a| 免费播放av | 中午字幕无线码一区2020 | 成片免费观看视频大全 | 日本高清视频网站www | 国产亚洲精品久久久久久网站 | 国产精品久久久久久久久久三级 | 一级国产航空美女毛片内谢 | av日韩一区二区三区 | 欧美精品成人一区二区在线观看 | 一级做受大片免费视频 | 久久九九热re6这里有精品 | 在线播放黄色网址 | 国产成人av一区 | 欧美精品成人一区二区三区四区 | 久久久久久久久久久久久国产精品 | 国产亚洲精品美女久久久 | 操操操日日日干干干 | 欧美一级高潮片免费的 | 精国产品一区二区三区四季综 | 亚洲乱妇19p | 欧美成人精品一区二区 | 免费黄色大片在线观看 | 亚洲成人午夜精品 | hdjapanesemassagehd日本| 成人免费入口 | 国产1区2 | 精品国产一区二区三区成人影院 |