導(dǎo)航控制器和表視圖密不可分,在實(shí)際的應(yīng)用程序中實(shí)現(xiàn)導(dǎo)航控制器,幾乎總要實(shí)現(xiàn)至少一個(gè)表,因?yàn)閷?dǎo)航控制器的強(qiáng)大之處在于它能夠處理復(fù)雜的分層數(shù)據(jù),在iphone上,連續(xù)的表視圖是表示分層數(shù)據(jù)最理想的分層方式。
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)新華,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18980820575導(dǎo)航控制器使用內(nèi)置動(dòng)畫在視圖之間順利移動(dòng),無(wú)需編寫歷史紀(jì)錄控制,導(dǎo)航控制器會(huì)自動(dòng)處理Back按鈕時(shí)間,讓用戶“岀?!?。
UINavigationController是構(gòu)建分層應(yīng)用的主要工具,與UITabBarController很類似,但是前者是以棧來(lái)實(shí)現(xiàn)功能,關(guān)于棧,我們并不陌生,遵守先進(jìn)后出的原則,向棧中添加一個(gè)對(duì)象為入棧,從棧中刪除一個(gè)對(duì)象叫出棧。
UINavigationController是構(gòu)建分層應(yīng)用程序的主要工具。本次的應(yīng)用程序?qū)⒂梢粋€(gè)導(dǎo)航控制器和六個(gè)子控制器組成。
如何把表視圖中的數(shù)據(jù)寫入子表中;
.如何把表視圖中的數(shù)據(jù)寫入可以讀取甚至可以編輯詳細(xì)數(shù)據(jù)的內(nèi)容視圖中;
.如何通過(guò)表清單來(lái)從多個(gè)值中進(jìn)行選擇;
.如何通過(guò)編輯模式從表視圖中刪除行。
下面是觸摸頂級(jí)試圖第一行Disclosure Butttons時(shí)出現(xiàn)的界面(第一個(gè)視圖右側(cè)的擴(kuò)展圖標(biāo)被稱為是擴(kuò)展指示器,用于告知用戶觸摸這一行將切換到另一個(gè)表視圖),其他幾個(gè)試圖都是如此。
在編輯過(guò)程中需注意以下幾點(diǎn):
1)列表只顯示來(lái)自數(shù)組的多個(gè)行,因此需要聲明一個(gè)數(shù)組實(shí)現(xiàn)表視圖時(shí)需要遵從兩個(gè)協(xié)議UITableViewDelagate和UITableViewDataSource,類需要這兩個(gè)協(xié)議來(lái)充當(dāng)表視圖的委托和數(shù)據(jù)源,然后聲明一個(gè)數(shù)組用于放置將要顯示的數(shù)據(jù)。
@interface Disclosure_Buttons : UIViewController
{
NSArray *listData;
}
2)方法返回?cái)?shù)組計(jì)數(shù)個(gè)數(shù):
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [listDatacount];
}
3) 方法獲取一個(gè)可重用單元,如果單元不存在則創(chuàng)建一個(gè)新的單元。然后從對(duì)應(yīng)查詢的數(shù)組中獲取對(duì)象,將單元的文本設(shè)置成控制器標(biāo)題并返回單元
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
staticNSString*DisclosureCellIdentifier = @"DisclosureCellIdentifier";
UITableViewCell*cell=[tableView dequeueReusableCellWithIdentifier:DisclosureCellIdentifier];
if (cell == nil)
{//創(chuàng)建一個(gè)新的單元
cell=[[UITableViewCellalloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:DisclosureCellIdentifier];
}
//對(duì)應(yīng)查詢數(shù)組中獲取的對(duì)象,將單元文本設(shè)置成控制器標(biāo)題并返回單元
NSUInteger row=[indexPath row];
NSString *rowData=[listDataobjectAtIndex:row];
cell.textLabel.text=rowData;
cell.accessoryType=UITableViewCellAccessoryDetailDisclosureButton;
return cell;
}
4) tableView:didSelectRowAtIndexPath:方法是用戶單擊某行后調(diào)用的方法,如果在調(diào)用時(shí)需要觸發(fā)信息展開,則調(diào)用此方法
5)tableView:editingStyleForRowAtIndexPath
方法是表視圖可以查詢指定行是否可以進(jìn)行刪除,是否可以將新行插入到指定位置。
通過(guò)返回UITableViewEditingStyleNone表示不支持插入和刪除行。
6)從屬性表中加載數(shù)據(jù)
-(void)viewDidLoad{
NSString *path=[[NSBundlemainBundle] pathForResoure:@"computers" ofType:@"plist"];
NSMutableArray *array=[[NSMutableArrayalloc] initWithContentsOfFile:path];
self.list=array;
[array release];
[superviewDidLoad];
}
7)UITableViewCellEditingStyleNone:不允許被編輯
UITableViewCellEditingStyleDelete:允許刪除
UITableViewCellEditingStyleInsert:允許插入
8)encodeWithCoder:方法把對(duì)象編碼為歸檔文件
initWithCoder:方法從歸檔文件中創(chuàng)建新的對(duì)象
9)UITextFieldDelegate:通過(guò)遵循這個(gè)協(xié)議,當(dāng)用戶對(duì)某個(gè)字段做出修改時(shí),會(huì)得到通知并保存修改。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。