0
我是iphone編程新手。如何在不創建太多類文件的情況下創建多個tableviewcontroller。
就像在iphone safari書籤欄中創建每個新文件夾一樣,創建文件並推送。它會繼續創建tableviews。
如何實現這一點。iphone多個UITableviewController
我是iphone編程新手。如何在不創建太多類文件的情況下創建多個tableviewcontroller。
就像在iphone safari書籤欄中創建每個新文件夾一樣,創建文件並推送。它會繼續創建tableviews。
如何實現這一點。iphone多個UITableviewController
您可以創建/編碼代表您的通用UITableViewController的單個類,然後創建它的多個實例。例如,原始的UITableViewController子類加載顯示第一個頁面,然後當您的didSelectRowAtIndexPath方法輕敲一行時,實例化您的UITableViewController子類的另一個實例並將其推送到導航堆棧上。
在這裏記住你的面向對象的編程技術,一個類不是一個對象,一個對象是一個類的實例,並且可以有很多類的實例,這就是你需要在這裏實現的。
下面是一些示例代碼:
MyTableViewController.h
#import <UIKit/UIKit.h>
@interface MyTableViewController : UITableViewController
@end
MyTableViewController.m
#import "MyTableViewController.h"
@implementation MyTableViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title = NSLocalizedString(@"Master", @"Master");
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
self.clearsSelectionOnViewWillAppear = NO;
self.contentSizeForViewInPopover = CGSizeMake(320.0, 600.0);
}
}
return self;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//HERES THE IMPORTANT PART FOR YOU
//SEE HOW I'M JUST CREATING ANOTHER INSTANCE OF MasterViewController?
//You can tap the rows in this table until memory runs out, but all I have is one table view controller
MyTableViewController *newController = [[[MasterViewController alloc] initWithNibName:@"MyTableViewController" bundle:nil] autorelease];
[self.navigationController pushViewController:newController animated:YES];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 5;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
}
cell.textLabel.text = NSLocalizedString(@"Click Me", @"Click Me");
return cell;
}
@end
感謝答覆。如果你不介意,你能告訴我一些示例代碼。 – raju
只需添加一些示例代碼。讓我知道,如果我可以提供進一步的細節 –
我已經理解,包含在didselectrowatindexpath中的代碼在這兩個控制器之間保持循環。但我想要的是,例如在主tableview用戶選擇 一行它推到另一個控制器。在這個控制器用戶創建一個「一個」項目,它應該推「一個」另一個控制器說第三個控制器。在第三控制器中,如果用戶 創建兩個項目說「一」和「二」。 「one」應該用空tableview推第四個控制器,「two」應該用空tableview推第五個控制器。所有的tableview數據中的 都會有所不同。 謝謝 – raju