0
ApplicationViewController *a=[mesApplications objectAtIndex:3];

mesApplicationsこれはApplicationViewControllerオブジェクトを含む配列であり、UIViewConrollerすべてのApplicationViewControllerに含まれるプロパティをセルに表示する必要があります。これを使用する場合:

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    // Configuration des cellules
    ApplicationViewController *cellValue = [mesApplications objectAtIndex:indexPath.row];
    cell.textLabel.text = cellValue.name;
    NSLog(@"%@",cellValue);
    return cell;
}

ログそれは空です、そして私は解決策を知りませんか?

4

1 に答える 1

1

以下は、あなたの説明に基づく短い実装です。正しく動作しているようです。足りないものが見つかることを願っています。

よろしく

ViewController.nib は、UIButton (addApplications を呼び出す) を含む単一の UITableView で構成されます。

ViewController.h

#import <UIKit/UIKit.h>

@interface ApplicationViewController : UIViewController

@property   NSString*   name;

@end

@interface ViewController : UITableViewController

@property   ( nonatomic, retain )   NSArray*                mesApplications;

- ( IBAction ) addApplications: ( id ) sender;

@end

ViewController.m

#import "ViewController.h"

@implementation ApplicationViewController

@end

@implementation ViewController

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

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

}

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

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

    if ( !cell )
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyTableViewCell"];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

    ApplicationViewController*  pApp    =   [ self.mesApplications objectAtIndex: indexPath.row ];
    [ cell.detailTextLabel setText: pApp.name ];
    NSLog(@"%@", pApp);
    return cell;
}

- ( IBAction ) addApplications: ( id ) sender
{
    ApplicationViewController*  pApp1   =   [ ApplicationViewController new ];
    pApp1.name  =   @"app1";

    ApplicationViewController*  pApp2   =   [ ApplicationViewController new ];
    pApp2.name  =   @"app2";

    ApplicationViewController*  pApp3   =   [ ApplicationViewController new ];
    pApp3.name  =   @"app3";

    self.mesApplications =  [ NSArray arrayWithObjects: pApp1, pApp2, pApp3, nil];

    [self.tableView reloadData];
}

@end

そしてコンソールダンプ

2013-03-11 13:38:17.132 kokio[10353:907] <ApplicationViewController: 0x1c535190>
2013-03-11 13:38:17.139 kokio[10353:907] <ApplicationViewController: 0x1c535260>
2013-03-11 13:38:17.142 kokio[10353:907] <ApplicationViewController: 0x1c535390>
于 2013-03-11T12:43:49.843 に答える