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