gpt4 book ai didi

ios - UITableViews 和 UITableViewCells

转载 作者:行者123 更新时间:2023-11-28 22:31:43 26 4
gpt4 key购买 nike

我不确定我做错了什么,但如果有人能指出我正确的方向,我将不胜感激。我正在 xcode 中创建一个应用程序。我目前有两个按钮可以连接到不同的 View Controller ,这两个 View 都由同一个类控制。类中定义了单独的 View 。我还有两个数组,每个 View 一个,其中填充了我想在 View 中显示的信息。这是 viewcontrollers .m 文件中的代码。如果我删除出现两个按钮功能的断点,但是第二个按钮显示来自错误数组的信息但转到正确的 View Controller 。我完全被难住了。

#import "techTwoViewController.h"
#import "maintInstrctViewController.h"
#import "showTechTipsViewController.h"
@interface techTwoViewController ()

@end

@implementation techTwoViewController
{
NSArray *maintInstrct;
NSArray *techTips;
}
@synthesize tableView;
@synthesize techTableView;

- (void)viewDidLoad
{
[super viewDidLoad];
// Initialize table data
maintInstrct = [NSArray arrayWithObjects:@"One", @"Two", nil];

techTips = [NSArray arrayWithObjects:@"Three", @"Four", nil];
}

- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

- (NSInteger)techTableView:(UITableView *)techTableView numberOfRowsInSection:(NSInteger)section
{
return [techTips count];
}

- (UITableViewCell *)techTableView:(UITableView *)techTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTechTableIdentifier = @"TechTipsCell";

UITableViewCell *cell = [techTableView dequeueReusableCellWithIdentifier:simpleTechTableIdentifier];

if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTechTableIdentifier];
}

cell.textLabel.text = [techTips objectAtIndex:indexPath.row];
return cell;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [maintInstrct count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"MaintInstrctCell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}

cell.textLabel.text = [maintInstrct objectAtIndex:indexPath.row];
return cell;
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showMaintKitInstrct"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
maintInstrctViewController *destViewController = segue.destinationViewController;
destViewController.maintKitName = [maintInstrct objectAtIndex:indexPath.row];
}

else if ([segue.identifier isEqualToString:@"showTechTips"]) {
NSIndexPath *indexPath = [self.techTableView indexPathForSelectedRow];
showTechTipsViewController *destViewController = segue.destinationViewController;
destViewController.techTipName = [techTips objectAtIndex:indexPath.row];
}
}
@end

最佳答案

我明白这里发生了什么。您正在将此 View Controller 指定为其拥有的两个 UITableViews 的数据源。但是当您的 techTableView 调用它的 dataSource 时,它无法知道您希望它调用您自定义的 dataSource 方法。您需要为您的 techTableView 提供自己的 dataSource。一个单独的类,它符合 UITableViewDataSource 协议(protocol)并实现了必要的方法。

关于ios - UITableViews 和 UITableViewCells,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17223861/

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