Как я могу добавить 2 UITableView на 1 nib/UIView, но используя 2 разных UITableViewController для обработки?Как добавить 2 UITableView на 1 nib/UIView, но с помощью 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, alloc на viewDidLoad и поместите выпуск в dealloc. –
Я пробовал, но не мог заставить его работать ... дополнительная информация добавлена. – Jacky
Если вы делаете это в IB, может возникнуть идея подключить выходы dataSource и Delegate к различным классам, а не делать это в viewDidLoad. –