2
如何在1個nib/UIView上添加2個UITableView,但使用2個不同的UITableViewController來處理?如何在1個nib/UIView上添加2個UITableView,但使用2個不同的UITableViewController來處理?
感謝您的幫助!
更新時間:
我理解了基本的想法,但我不能讓它工作起來。
也許這是一個簡單的問題,但對於有人不知道,這顯然是一個困難的問題。
任何人都可以幫助解決一些問題嗎?
我創建了一個名爲「MutiTableView」的基於視圖的應用程序,然後將&將2個TableView拖放到筆尖中。
這是生成ViewController,我添加2 IBOutlet爲了連接到筆尖中的2個表。
@class FirstTableViewController;
@class SecondTableViewController;
@interface MutiTableViewViewController : UIViewController {
UITableView *tablefirst;
UITableView *tablesecond;
FirstTableViewController *firstController;
SecondTableViewController *secondController;
}
//@property (nonatomic, retain) IBOutlet Table1ViewController *viewController;
@property (nonatomic, retain) IBOutlet UITableView *tablefirst;
@property (nonatomic, retain) IBOutlet UITableView *tablesecond;
@property (nonatomic, retain) FirstTableViewController *firstController;
@property (nonatomic, retain) SecondTableViewController *secondController;
這是我如何設置數據源和委託
- (void)viewDidLoad {
NSLog(@"viewDidLoad :(");
firstController = [[FirstTableViewController alloc] initWithStyle:UITableViewStylePlain];
secondController = [[SecondTableViewController alloc] initWithStyle:UITableViewStylePlain];
tablefirst.delegate = firstController;
tablefirst.dataSource = firstController;
tablesecond.delegate = secondController;
tablesecond.dataSource = secondController;
[super viewDidLoad];
}
這是我FirstTableViewController,它僅僅是一個基本的tableViewController
@interface FirstTableViewController : UITableViewController {
NSArray *listData;
}
@property (nonatomic,retain) NSArray * listData;
@end
#import "FirstTableViewController.h"
@implementation FirstTableViewController
@synthesize listData;
/*
- (id)initWithStyle:(UITableViewStyle)style {
// Override initWithStyle: if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
if (self = [super initWithStyle:style]) {
}
return self;
}
*/
- (void)viewDidLoad {
NSLog(@"FirstTableViewController viewDidLoad");
NSArray * array = [[NSArray alloc] initWithObjects:@"111",@"222",@"333",@"444",@"555",@"666",@"777",@"888",@"999",@"000",nil];
self.listData = array;
[array release];
[super viewDidLoad];
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
.....
我也像實施以下方法。
numberOfSectionsInTableView
tableView:numberOfRowsInSection:
tableView:cellForRowAtIndexPath:
再次想到,不要釋放視圖控制器。在.h中聲明它們,在viewDidLoad上進行alloc,並在dealloc中放入一個版本。 – 2010-03-26 18:21:02
我嘗試過,但無法讓它工作...更多信息附加。 – Jacky 2010-03-27 14:54:42
如果你是在IB中完成它,將dataSource和Delegate出口連接到不同的類可能是一個想法,而不是在viewDidLoad中完成它。 – 2010-03-28 09:28:52