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单元调用

modalview 关闭后 TableView 未重新加载

在 tableview 单元格中显示图像

无法显示跨到另一个 tableview 的 Tableview 和自定义表格单元格

Snapkit:如何在 scrollView 中嵌入一个简单的 tableView?

iOS xcode重用tableview [关闭]