0

我有 2 个 VC,第一个是BooksDetailViewControllerNSString myBookString。另一个是FavBooksViewControllerfavBookListNSMutableArray。我想myBookString从第一个 VC 传递 NSString 以将其包含在favBookListNSMutableArray 中,然后填充表。

我已经包含@class FavBooksViewController;BooksDetailViewController.h

进口#import "FavBooksViewController.h"BooksDetailViewController.m

中的动作BooksDetailViewController.m如下所示:

- (IBAction)addToFav:(id)sender {
    FavBooksViewController *mdvc;
    [mdvc.self.favBookList addObject:myBookString];
}

FavBooksViewController.h我有

@interface FavBooksViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

@property (strong, nonatomic) id delegate;
@property (nonatomic,strong) NSMutableArray *favBookList;

FavBooksViewController.m-#import "FavBooksDetailViewController.h" 在 ViewDidLoad 我试图包括这一行

self.favBookList = [[NSMutableArray alloc]initWithObjects:nil];

但是我已经注释掉了。有了它,没有它 UITableView 就无法工作。当然我有这个:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

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

- (UITableViewCell *)tableView:(UITableView *)tableView 
         cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
           UITableViewCell *cell = [tableView 
                                 dequeueReusableCellWithIdentifier:@"favBooksCell"];

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

无论如何,UITableView 只是空的,没有单元格,什么都没有。这里可能的错误是什么?我究竟做错了什么?提前致谢!

4

2 回答 2

2

您忘记在您的cellForRowAtIndexPath方法中启动单元格。

代码应该是:

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

        UITableViewCell *cell = [tableView 
                                 dequeueReusableCellWithIdentifier:identifier];
        if(!cell) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
        }

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

试试这个 ;-)

希望这可以帮助。

于 2012-07-27T08:36:53.680 回答
2

无需将字符串添加到BooksDetailViewController中的数组,只需将字符串传递给FavBooksViewController,然后将其添加到 FavBooksViewController 中的数组中。

- (IBAction)addToFav:(id)sender {
    FavBooksViewController *mdvc;
    [mdvc setFavBook:myBookString];  
    //favBook is a NSString member object in your FavBooksViewController class

     [self.navigationController pushViewController:mdvc animated:YES];
}

试试这是否可行。

于 2012-07-27T08:54:52.050 回答