gpt4 book ai didi

uitableview - 如何在 .xib 文件上创建的 UIViewController 中设置 UITableView

转载 作者:行者123 更新时间:2023-12-03 15:19:15 32 4
gpt4 key购买 nike

我有这样的课:

@interface ExerciseLogDetails : UIViewController<UIActionSheetDelegate, UITableViewDelegate, UITableViewDataSource> {

我试图在其中显示一些元素,然后是 UITextView。 UITextView 元素是在 Interface Builder 上创建的。执行此代码时:
- (void)viewDidLoad {
self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
tableView.dataSource = self;
tableView.delegate = self;
[self.view addSubview:self.tableView];
}

一张表格显示,但不是我在 Interface Builder 中配置的表格。它完全空白且未格式化。如何访问我的表并以编程方式填充数据?

谢谢!

最佳答案

该线程上的一些提示帮助我创建了这个。我将提供一些更完整的代码文件以帮助其他人:

步骤 1. 将 UITableView 拖到 Storyboard 或 XIB 中的 View Controller 上。在我的示例中,我使用的是 Storyboard。

第 2 步:打开您的 ViewController(在我的情况下它只是 DefaultViewController)并为 UITableView 添加两个委托(delegate): UITableViewDelegate UITableView 数据源 .还为人口和 UITableView IBOutlet 添加一个简单的数据源。

DefaultViewController.h

#import <UIKit/UIKit.h>

@interface DetailViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

@property (strong, nonatomic) IBOutlet UITableView *tableView;
@property (strong, nonatomic) NSMutableArray *newsArray;

@end

第 3 步:打开您的实现文件 (DefaultViewController.m) 并添加以下内容:
#import "DetailViewController.h"

@interface DetailViewController ()
- (void)configureView;
@end

@implementation DetailViewController

@synthesize newsArray;
@synthesize tableView;

#pragma mark - Managing the detail item

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

[self configureView];
}

- (void)configureView
{
// Update the user interface for the detail item.
self.newsArray = [[NSMutableArray alloc] initWithObjects:@"Hello World",@"Goodbye World", nil];
}



- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

#pragma mark UITableViewDelegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// typically you need know which item the user has selected.
// this method allows you to keep track of the selection

}

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView
editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{

return UITableViewCellEditingStyleDelete;
}

// This will tell your UITableView how many rows you wish to have in each section.
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.newsArray count];
}

// This will tell your UITableView what data to put in which cells in your table.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifer = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifer];

// Using a cell identifier will allow your app to reuse cells as they come and go from the screen.
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifer];
}

// Deciding which data to put into this particular cell.
// If it the first row, the data input will be "Data1" from the array.
NSUInteger row = [indexPath row];
cell.textLabel.text = [self.newsArray objectAtIndex:row];

return cell;
}

@end

第 4 步:转到您的 Storyboard 或 XIB 并选择您的 UITableView 并拖动 数据源 代表网点到您的 默认 View Controller 把它们连起来。您还需要连接 引用 socket 将 UITableView 发送到您的 IB导出表查看您在头文件中创建的对象。

完成后,您应该能够运行它并且示例数据将就位。

我希望这与该线程上的其他技巧一起可以帮助其他人在 ViewController 上从头开始设置 UITableView。

关于uitableview - 如何在 .xib 文件上创建的 UIViewController 中设置 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11465579/

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