TableView 项目未显示[关闭]
Posted
技术标签:
【中文标题】TableView 项目未显示[关闭]【英文标题】:TableView items are not showing [closed] 【发布时间】:2013-02-19 01:54:06 【问题描述】:我对 XCode 了解不多。好吧,我对 XCode 几乎一无所知。但是我的 TableView 有问题。
我一直在关注This Tutorial,但是当我尝试自己制作时,除了 TableView 项目之外,一切都很完美。我尝试过的所有涉及表格视图的教程都给我同样的问题。没有显示任何项目:(我将留下完整项目的下载链接,因为我不确定你们需要什么代码来帮助我。
Download Link (MediaFire)
请帮忙!我的头快要爆炸了....
这是我在尝试运行应用程序时遇到的错误。
//
// main.m
// Demo TWo
//
// Created by Alexander Pina on 2/18/13.
// Copyright (c) 2013 Alexander Pina. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char *argv[])
@autoreleasepool
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
在@autoreleasepoo ...它告诉我,“线程1:信号SIGABRT
【问题讨论】:
你遇到了什么错误? 【参考方案1】:我查看了您的项目。我认为您的问题是由 Xcode 中的错误引起的。这可能发生在连接 xib 或 Storyboard 文件时,在 xib 文件的文件检查器中更改某些内容后,我多次遇到问题。
没有使用您的 Tab2_TableViewController 类代码,即使您在情节提要中将 UITableViewController 的自定义类名称设置为 Tab2_TableViewController。我通过在 Tab2_TableViewController 子类的 viewDidLoad 中放置一个断点来测试这一点,并看到该方法从未被调用过。它应该可以工作,但是 Xcode 中出了点问题,所以它不能工作。
我通过这样做解决了这个问题:
将 Tab2_TableViewController.h 和 .m 文件复制到另一个文件夹 从 Xcode 项目中删除 Tab2_TableViewController.h 和 .m 将 Tab2_TableViewController.h 和 .m 从另一个文件夹复制回 Xcode 项目。这就是我所做的一切,它解决了问题,表格视图单元格现在正在加载到视图中。
实际上,我找到了解决问题的更好方法。在 Xcode Project Navigator 中,选择项目文件。选择目标 DemoTWo->Build Phases->Compile Sources。点击小“+”按钮并添加 Tab2_TableViewController.m。通常,当您添加文件时,它们会自动添加到此列表中,但无论出于何种原因,您的情况下都没有添加该文件。
【讨论】:
嘿。你能把你的项目发给我吗?或者在这里粘贴链接?因为我按照你说的做了,现在它给了我一个奇怪的错误:“0x3b0a7350: blo 0x3b0a7368 ; __pthread_kill + 32” 我为您的问题找到了更好的解决方案,请参阅我的更新答案。如果您在发布的原始项目上执行此操作,它应该可以工作。我不知道你为什么会收到这个错误,尽管你可以尝试在你的项目上运行 clean 看看是否能解决它。 好的,所以我用我的项目做了这个,但它没有运行。所以我重新下载了我上传的文件并运行了。但是当我这样做时,发生了另一个错误。所以我决定重新启动我的笔记本电脑并再次下载该项目,但仍然:(你能上传你的项目的一个版本,以便我可以尝试使用那个吗? 好的,你可以从这里获取它:yousendit.com/download/UW13c2ZDeFVTRTdOTzhUQw 同样的错误。我在我的 iPhone 和模拟器上运行该应用程序。我要上传图片等等。 i.imgur.com/0JrzOx1.png【参考方案2】:添加委托和数据源。我认为您忘记添加代表和数据源,这就是它不显示表格的原因。将以下行添加到您的 viewDidLoad().like 下面的代码
self.myTableView.dataSource = self;
self.myTableView.delegate = self;
【讨论】:
我应该在哪里添加这个? 我将它添加到 viewDidLoad() 下的“Tab2_TableViewControler”中,但它仍然不起作用:(【参考方案3】:试试这个,
->只需在您的 xcode 中创建基于单个 View Application 的示例项目
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>
IBOutlet UITableView *TableView;
NSArray *arrItems;
@end
viewcontroller.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
[super viewDidLoad];
arrItems =[[NSArray alloc]initWithObjects:@"row1",@"row2",@"row3",@"row4",@"row5",@"row6",@"row7", nil];
TableView.dataSource =self;
TableView.delegate =self;
// Do any additional setup after loading the view, typically from a nib.
#pragma mark -
#pragma mark Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
// Return the number of sections.
return 1;
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
// Return the number of rows in the section.
return [arrItems count];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
[cell.textLabel setFont:[UIFont boldSystemFontOfSize:16]];
[cell.textLabel setTextColor:[UIColor colorWithRed:0 green:0.5 blue:0 alpha:1]];
cell.textLabel.text = [arrItems objectAtIndex:indexPath.row];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
return cell;
#pragma mark -
#pragma mark Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
【讨论】:
我试过这个,但没有用。我不知道我是否以正确的方式做到了。我将所有这些代码放在正确的位置,但从这里开始,我所做的是,创建一个新的 TableViewController 并在“Identitiy”中写了“Cell”。我还需要做什么? 只需创建 Viewcontroller 就足够了 无需创建 UITableViewController 然后拖放 tableView 而不是 tableView 单元格然后按照发布的代码进行操作以上是关于TableView 项目未显示[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
didEndEditingRow未使用自定义tableview单元调用
无法显示跨到另一个 tableview 的 Tableview 和自定义表格单元格