亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IOS之導航控制器傳值

2019-11-14 18:07:37
字體:
來源:轉載
供稿:網友

  UINavigationController是用于構建分層應用程序的主要工具,主要采用棧形式來實現視圖。任何類型的視圖控制器都可放入棧中。在設計導航控制器時需要指定根視圖即用戶看到的第一個視圖。根視圖控制器是被導航控制器推入到棧中的第一個視圖控制器。當用戶查看下一個試圖時,棧中將加入一個新的視圖控制器,它所控制的視圖將展示給用戶。我們可以通過導航按鈕來操作分層的應用程序,用它來控制視圖的推入或推出,涉及到多個控制器的相互跳轉就肯定會設計到值的傳遞,下面我們一起研究一下如何進行控制器之間的傳值:

  1、我們用一個簡單的例子來實現控制器之間的傳值,如圖所示:點擊第一個頁面按鈕跳轉到第二個頁面,點擊第二個頁面按鈕返回第一面同時對應的標題變為按鈕的標題,同時在返回第二個頁面的時候上次被點擊的按鈕顯示為紅色

2、首先我們先定義一個控制器,并附帶一個push按鈕

@implementation JRViewController- (void)viewDidLoad {    [super viewDidLoad];        //設置標題默認為item1    self.title=@"item1";    //1 設置視圖    [self setSubviews];}#PRagma mark - 設置子視圖- (void) setSubviews{        //設置背景色    self.view.backgroundColor=[UIColor greenColor];        //增加按鈕    UIButton * button=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 140, 45)];    button.backgroundColor=[UIColor redColor];    [button setTitle:@"push" forState:UIControlStateNormal];    button.center=self.view.center;    [button addTarget:self action:@selector(pushAction) forControlEvents:UIControlEventTouchUpInside];    [self.view addSubview:button];   }

2、我們現在定義第二個控制器,并且附帶四個按鈕如圖所示

@implementation SecondViewController- (void)viewDidLoad {    [super viewDidLoad];       [self setSubviews];}#pragma mark - 設置子視圖- (void) setSubviews{        //設置背景色    self.view.backgroundColor=[UIColor blueColor];           CGPoint point=self.view.center;    point.y=point.y-100;            for ( int i=0; i<4; i++) {       //增加按鈕        UIButton * button=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 140, 45)];                //重新設置新的中心點坐標        CGPoint newPoint=point;        newPoint.y+=i*55;        button.center=newPoint;                        //設置按鈕屬性事件        button.backgroundColor=[UIColor grayColor];        NSString * title=[NSString stringWithFormat:@"item%d",i+1];        [button setTitle:title forState:UIControlStateNormal];        [button addTarget:self action:@selector(popAction:) forControlEvents:UIControlEventTouchUpInside];        [self.view addSubview:button];                //根據傳過來的標題來將對應的按鈕標題設置為紅色        if ([title isEqualToString:self.buttonTitle]) {            [button setTitleColor:[UIColor redColor] forState:UIControlStateNormal];        }                    }  }

  3、下面我們會考慮頁面的跳轉了,當從第一個控制器跳轉到第二個控制器的時候我們需要將第二個控制器的按鈕變紅色,因此需要將第一個的標題傳過去,在這里我們采取在第二個控制器添加屬性的方式來傳值,如下所示:

@interface SecondViewController : UIViewController/** 按鈕標題*/@property(nonatomic,copy) NSString * buttonTitle;@end

在跳轉的時候,對第二個控制器賦值即可

#pragma mark - EventAction- (void) pushAction{    SecondViewController * sec=[[SecondViewController alloc] init];        //設置代理,用來反向傳值    sec.delegate=self;        sec.buttonTitle=self.title;        [self.navigationController pushViewController:sec animated:YES];}

  4、我們現在已經將第一個控制器的標題傳遞給第二個控制器,下面我們考慮如何在點擊第二個頁面的時候來控制第一個控制器的標題改變,由于需要第二個控制器來改變第一個控制器的值,因此我們來考慮通過代理來實現

//設置協議@protocol ChangeTitleDelegate <NSObject>- (void) changeTitle:(NSString *) title;@end@property(nonatomic,weak) id <ChangeTitleDelegate> delegate;點擊方法#pragma mark - popAction- (void) popAction:(UIButton * ) button{            [self.delegate changeTitle:button.titleLabel.text];        [self.navigationController popViewControllerAnimated:YES];    }

在第一個控制器中實現該方法即可

#pragma mark - 代理方法- (void) changeTitle:(NSString *) title{    self.title=title;}

 

作者:杰瑞教育
出處:http://www.49028c.com/jerehedu/ 
版權聲明:本文版權歸杰瑞教育技有限公司和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
技術咨詢:JRedu技術交流
 

上一篇:iOS-ARC機制

下一篇:一周隨筆--15.10.19

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线免费看av不卡| 国产精品嫩草视频| 国产精品久久久久久久一区探花| 亚洲国产成人精品久久| 日韩久久免费视频| 538国产精品视频一区二区| 国产免费一区二区三区香蕉精| 国产69精品久久久| 亚洲综合成人婷婷小说| 国产精品视频免费在线观看| www.日韩.com| 日韩欧美在线字幕| 欧美性在线观看| 欧美日韩国产91| 国产精品入口夜色视频大尺度| 国产精品人人做人人爽| 国产精品一区二区久久国产| 日韩欧美中文在线| 成人乱人伦精品视频在线观看| 亚洲a级在线播放观看| 亚洲视频一区二区三区| 国产精品第10页| 精品久久中文字幕久久av| 国产一区二区动漫| www.xxxx精品| 欧美一区二区三区免费视| 国产成+人+综合+亚洲欧美丁香花| 国产一区二区三区视频免费| 91免费福利视频| xxav国产精品美女主播| 一本色道久久88综合亚洲精品ⅰ| 中文字幕精品影院| 亚洲国产小视频| 精品视频一区在线视频| 国产91成人在在线播放| 欧美国产视频一区二区| 日韩在线观看电影| 久久久精品免费视频| 欧美成人一区二区三区电影| 日韩成人激情在线| 欧美激情精品久久久久久大尺度| 热99精品只有里视频精品| 国产精品美女午夜av| 大伊人狠狠躁夜夜躁av一区| 97超级碰碰碰久久久| 久久91亚洲精品中文字幕奶水| 91免费精品国偷自产在线| 日韩成人中文字幕在线观看| 超碰精品一区二区三区乱码| 国产一区二区日韩精品欧美精品| 成人在线视频网站| 日韩精品在线播放| 日韩精品视频在线播放| 国产精品视频免费观看www| 国产在线精品播放| 国产精品福利网站| 日韩国产激情在线| 久久久久久久久爱| 精品高清一区二区三区| 日韩av大片在线| 欧美成人黑人xx视频免费观看| 亚洲激情国产精品| 日韩美女视频免费在线观看| 日韩最新在线视频| 日韩性xxxx爱| 国产亚洲欧美日韩一区二区| 68精品国产免费久久久久久婷婷| 亚洲大尺度美女在线| 国产一区二区三区三区在线观看| 国产日韩精品在线观看| 国产精品美女久久久免费| 国产精品久久久久久久app| 成人免费观看49www在线观看| 不用播放器成人网| 欧美成年人视频网站| 国产日韩欧美夫妻视频在线观看| 欧美视频裸体精品| 日韩电影免费在线观看| 免费91麻豆精品国产自产在线观看| 亚洲在线免费视频| 亚洲天堂av综合网| 午夜精品久久久久久久久久久久| 高清欧美性猛交| 国产精品久久综合av爱欲tv| 国产精品国语对白| 久久夜精品va视频免费观看| 日韩高清av在线| 92看片淫黄大片看国产片| 久久6免费高清热精品| 亚洲精品美女久久| 日韩亚洲精品视频| 日韩视频第一页| 久久国内精品一国内精品| 国产精品日韩欧美大师| 欧美韩国理论所午夜片917电影| 亚洲午夜国产成人av电影男同| 亚洲国产高清福利视频| 国产91精品网站| 亚洲精品自拍偷拍| 亚洲免费中文字幕| 91亚洲精品久久久久久久久久久久| 国产日韩欧美一二三区| 欧美日韩国产精品一区二区不卡中文| 亚洲激情在线观看视频免费| 国产精品igao视频| 欧美一级大片在线观看| 日韩精品在线私人| 91久久久久久国产精品| 国产精品久久久久久一区二区| 91免费人成网站在线观看18| 亚洲天天在线日亚洲洲精| 欧美亚洲视频在线观看| 激情久久av一区av二区av三区| 国产综合视频在线观看| 在线日韩av观看| 欧美激情精品久久久久久大尺度| 日韩成人av在线| 亚洲国产精品国自产拍av秋霞| 亚洲男人天堂视频| 中文字幕亚洲综合久久筱田步美| 最新的欧美黄色| 国产久一一精品| 亚洲精品之草原avav久久| 97涩涩爰在线观看亚洲| 欧美精品在线播放| 国产精品成人观看视频国产奇米| 国产精品老女人精品视频| 国产精品6699| 亚洲欧美成人在线| 亚洲国产精久久久久久久| 国产亚洲欧美aaaa| 亚洲成人动漫在线播放| 亚洲欧美一区二区三区久久| 91人成网站www| 日韩国产一区三区| 岛国av一区二区在线在线观看| 国产丝袜一区二区| 欧美肥婆姓交大片| 国产亚洲激情视频在线| 91精品久久久久久久久久另类| 日韩的一区二区| 国产成人aa精品一区在线播放| 午夜精品三级视频福利| 亚洲精品电影网站| 国产精品爽爽ⅴa在线观看| 亚洲精品日韩久久久| 久久久久国产一区二区三区| 国产精品丝袜高跟| 红桃视频成人在线观看| 亚洲va欧美va国产综合剧情| 国产第一区电影| 欧美中文在线观看| 国产亚洲激情在线| 91精品久久久久久久久中文字幕| 日本三级韩国三级久久| 久久久国产精品x99av| 亚洲精品欧美一区二区三区| 亚洲va欧美va在线观看| 自拍亚洲一区欧美另类| 日韩一中文字幕| 精品国产视频在线| 久久久国产精品一区| 欧美裸身视频免费观看| 青青草精品毛片|