如何在情节提要中将属性 tableView 连接到 UITableView

Posted

技术标签:

【中文标题】如何在情节提要中将属性 tableView 连接到 UITableView【英文标题】:How to connect property tableView to UITableView in storyboard 【发布时间】:2015-10-09 00:39:25 【问题描述】:

enter image description here我是 ios 编程新手,我正在尝试让 UITableView 显示黑客马拉松的时间表。我似乎无法将我在 .h 文件中定义的属性连接到我在 ScheduleViewController 中的表格视图。当我将按钮与其关联的属性连接起来时,我只需保持控制并拖动蓝线来连接它们。我能够通过命令设置数据源和委托 Outlets,并将它们拖到我的 ScheduleViewController 顶部的圆形符号上。我还缺少什么来设置它吗?

ctrl and drag doesn't work

    #import <UIKit/UIKit.h>
    #include "Weekend.h"

    @interface ScheduleViewController : UIViewController <UITableViewDataSource,
        UITableViewDelegate>

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


    @end



#import "ScheduleViewController.h"

@interface ScheduleViewController ()

@end

@implementation ScheduleViewController 

    NSArray *allWeekendDays;    


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

    //Set up schedule for friday
    Weekend *friday = [[Weekend alloc] init];
    friday.day = @"Friday, March 20th";
    friday.events = @"9:00 PM       Check-In\n"
                     "11:00 PM      Opening Ceremony\n"
                     "11:59 PM      Begin Hacks";

    //Set up schedule for saturday
    Weekend *saturday = [[Weekend alloc] init];
    saturday.day = @"Saturday, March 21st";
    saturday.events = @"2:00 AM     Snack Time\n"
                       "8:00 AM     Breakast\n"
                       "1:00 PM     Lunch\n"
                       "7:30 PM     Dinner\n"
                       "10:00 PM    Nerf-Gun Wars\n";

    //Set up schedule for sunday
    Weekend *sunday = [[Weekend alloc] init];
    sunday.day = @"Sunday, March 22nd";
    sunday.events = @"2:00 AM       Snack Time\n"
                     "6:30 AM       Breaskfast\n"
                     "7:30 AM       End Hacks\n"
                     "8:00 AM       Expo 1\n"
                     "9:00 AM       Expo 2\n"
                     "10:00 AM      Closing Ceremony";

    allWeekendDays = [NSArray arrayWithObjects:friday, saturday, sunday, nil];


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



-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
    //Defines how many rows will be in my table
    return [allWeekendDays count];


-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    //Defines how each individual cell will loook like

    static NSString *simpleTableIdentifier = @"WeekendCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

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

    Weekend *schedule = [allWeekendDays objectAtIndex:indexPath.row];
    cell.textLabel.text = schedule.day;
    cell.detailTextLabel.text = schedule.events;

    return cell;
    //Make a class for weekend days, similar to the president one in the demo

@end

【问题讨论】:

你能贴一张你的故事板的图片吗? 让我知道我是否应该为你放大任何地方 你仍然需要从你的 tableview 中按住 ctrl 并拖动到你各自的 VC 中吗?这不工作吗? 是的,这不起作用。我正在上传另一个屏幕截图。我将蓝线拖到我的 tableview 上,它没有像往常那样突出显示。 尝试将 tableView 名称更改为其他名称,即使连接它也会显示错误 【参考方案1】:

按照这些步骤操作,希望对您有所帮助

1- 删除 ScheduleViewController 两个文件(选择删除引用)。

2- ctrl+shift+k (清理你的项目)

3-然后进入项目目录,再次将SchedularViewController文件拖到项目中。

4- 现在转到情节提要并尝试重新连接 tableView。

【讨论】:

以上是关于如何在情节提要中将属性 tableView 连接到 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

使用按钮将视图与情节提要中的 tableview 连接

将情节提要的 UITableView 连接到 .m UIViewController 作为 IBOutlet

如何将情节提要中的多个按钮连接到单个动作?

如何将情节提要中的按钮连接到 Xcode 中的代码

一起使用笔尖和情节提要:将笔尖的按钮目标/动作连接到情节提要中的控制器

使用多个 ViewController、Xcode 将代码连接到情节提要中的 UI