在UIScrollView中使用带有UITableView的xib添加UIViewcontroller

时间:2014-03-22 16:29:37

标签: objective-c uitableview uiviewcontroller uiscrollview

我正在尝试在UIViewController中添加UIScrollViewUIViewController添加了UITableView Interface Builder,我已将其连接到数据源和委托到文件所有者然后我已将IBOutlet属性与ActivityView类连接起来,当我这样做以添加到UIScrollView时:

ActivityView *viewActivity = [[ActivityView alloc] initWithNibName:@"ActivityView" bundle:nil];
[self.scrollView addSubview:viewActivity.view];

但是当我打开视图时,应用程序会在某个时间使用BAD_EXC_ACCESS崩溃,有时会出现SIGBRT并出现此错误:

[UILabel tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0xd27f8d0

有时是这样的:

[SMPageControl tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0xd68dcb0

有时是这样的:

[NSPathStore2 tableView:numberOfRowsInSection:]: unrecognized selector sent to instance 0xd3746b0

我无法理解如何修复它,如果我单独使用ActivityView,而不将其添加到UIScrollview,效果很好,如果我在没有与UITableView连接的情况下添加ActivityView,那么我认为问题是将它添加到带有UITableView插座连接的UIScrollView,我该怎么做?

这是ActivityView的代码:

#import "ActivityView.h"

@interface ActivityView () <UITableViewDelegate, UITableViewDataSource>

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

@end

@implementation ActivityView

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

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

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

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

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

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    self.activities = [NSMutableArray array];
    [self.activities addObject:@"row"];
}
编辑:我也试过以编程方式添加UITableView,没有界面构建器,当我设置数据源代理时,崩溃......每个人都可以尝试......总是崩溃......

0 个答案:

没有答案