您好,登錄后才能下訂單哦!
導航控制器和表視圖密不可分,在實際的應用程序中實現導航控制器,幾乎總要實現至少一個表,因為導航控制器的強大之處在于它能夠處理復雜的分層數據,在iphone上,連續的表視圖是表示分層數據最理想的分層方式。
導航控制器使用內置動畫在視圖之間順利移動,無需編寫歷史紀錄控制,導航控制器會自動處理Back按鈕時間,讓用戶“岀棧”。
UINavigationController是構建分層應用的主要工具,與UITabBarController很類似,但是前者是以棧來實現功能,關于棧,我們并不陌生,遵守先進后出的原則,向棧中添加一個對象為入棧,從棧中刪除一個對象叫出棧。
UINavigationController是構建分層應用程序的主要工具。本次的應用程序將由一個導航控制器和六個子控制器組成。
如何把表視圖中的數據寫入子表中;
.如何把表視圖中的數據寫入可以讀取甚至可以編輯詳細數據的內容視圖中;
.如何通過表清單來從多個值中進行選擇;
.如何通過編輯模式從表視圖中刪除行。
下面是觸摸頂級試圖第一行Disclosure Butttons時出現的界面(第一個視圖右側的擴展圖標被稱為是擴展指示器,用于告知用戶觸摸這一行將切換到另一個表視圖),其他幾個試圖都是如此。
在編輯過程中需注意以下幾點:
1)列表只顯示來自數組的多個行,因此需要聲明一個數組實現表視圖時需要遵從兩個協議UITableViewDelagate和UITableViewDataSource,類需要這兩個協議來充當表視圖的委托和數據源,然后聲明一個數組用于放置將要顯示的數據。
@interface Disclosure_Buttons : UIViewController<UITableViewDelegate,UITableViewDataSource>
{
NSArray *listData;
}
2)方法返回數組計數個數:
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [listDatacount];
}
3) 方法獲取一個可重用單元,如果單元不存在則創建一個新的單元。然后從對應查詢的數組中獲取對象,將單元的文本設置成控制器標題并返回單元
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
staticNSString*DisclosureCellIdentifier = @"DisclosureCellIdentifier";
UITableViewCell*cell=[tableView dequeueReusableCellWithIdentifier:DisclosureCellIdentifier];
if (cell == nil)
{//創建一個新的單元
cell=[[UITableViewCellalloc] initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:DisclosureCellIdentifier];
}
//對應查詢數組中獲取的對象,將單元文本設置成控制器標題并返回單元
NSUInteger row=[indexPath row];
NSString *rowData=[listDataobjectAtIndex:row];
cell.textLabel.text=rowData;
cell.accessoryType=UITableViewCellAccessoryDetailDisclosureButton;
return cell;
}
4) tableView:didSelectRowAtIndexPath:方法是用戶單擊某行后調用的方法,如果在調用時需要觸發信息展開,則調用此方法
5)tableView:editingStyleForRowAtIndexPath
方法是表視圖可以查詢指定行是否可以進行刪除,是否可以將新行插入到指定位置。
通過返回UITableViewEditingStyleNone表示不支持插入和刪除行。
6)從屬性表中加載數據
-(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:方法把對象編碼為歸檔文件
initWithCoder:方法從歸檔文件中創建新的對象
9)UITextFieldDelegate:通過遵循這個協議,當用戶對某個字段做出修改時,會得到通知并保存修改。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。