gpt4 book ai didi

iphone - 如何在 1 个 nib/UIView 上添加 2 个 UITableView 但使用 2 个不同的 UITableViewController 来处理?

转载 作者:行者123 更新时间:2023-12-03 21:23:42 25 4
gpt4 key购买 nike

如何在 1 个 nib/UIView 上添加 2 个 UITableView,但使用 2 个不同的 UITableViewController 来处理?

感谢您的帮助!

<小时/>

更新:

<小时/>

我理解基本思想,但我就是无法让它协同工作。

也许这是一个简单的问题,但对于不知道的人来说,这显然是一个困难的问题。

有人可以帮助解决一点问题吗?

我创建了一个名为“MutiTableView”的基于 View 的应用程序,然后将 2 个 TableView 拖放到 Nib 中。

这是生成的 ViewController,我添加 2 个 IBOutlet 以便与 Nib 中的 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;

这就是我设置数据源和委托(delegate)的方式

- (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:

最佳答案

将委托(delegate)和数据源设置为不同的 UITableViewController。

AUITableViewController * firstController = [[AUITableViewController alloc] init];
UITableView * table1 = [[UITableView alloc] initWith...];
table1.delegate = firstController;
table1.dataSource = firstController;
[someView addSubview:table1];
[table1 release];
[firstController release];

AnotherUITableViewController * secondController = [[AnotherUITableViewController alloc] init];
UITableView * table2 = [[UITableView alloc] initWith...];
table2.delegate = secondController;
table2.dataSource = secondController;
[someView addSubview:table2];
[table2 release];
[secondController release];

尚未经过测试,但这是基本思想。

要在界面生成器中执行此操作,只需将数据源和委托(delegate)连接器连接到不同的类/ Controller 。

关于iphone - 如何在 1 个 nib/UIView 上添加 2 个 UITableView 但使用 2 个不同的 UITableViewController 来处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2524417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com