0

私は 2 つの VC を持っています。最初はBooksDetailViewControllerNSString を持つものmyBookStringです。もう 1 つFavBooksViewControllerは、favBookListNSMutableArray を持つものです。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 に答える