0

カスタム テーブル ビューを生成するためのサブクラスを 1 つだけ使用して、対応するビューにさまざまなコンテンツを表示したいと考えています。テーブルビューがデータでいっぱいになったら、ビュー全体を特定のビューに送信して表示したいと思います。

表示しているView Controllerでテーブルビューを生成しても問題ありません。テーブルビューを表示ビューコントローラーから別のビューに転送することもできますが、別のクラスでテーブルビューを生成してルートビューコントローラーから呼び出そうとすると、初期化された空のテーブルビューしか取得できません。

コードは次のとおりです。

tableViewGenerator.h

#import <UIKit/UIKit.h>
@interface TableViewGenerator : UIViewController <UITableViewDataSource, UITableViewDelegate>
- (UITableView *) getTableViewForOtherVC;
@property (nonatomic, strong) IBOutlet UITableView *spreadSheet;
@end

tableViewGenerator.m

...

- (UITableView *) getTableViewForOtherVC {
    if (!self.spreadSheet) {
        self.spreadSheet = [[UITableView alloc]initWithFrame:CGRectMake(0., 0., self.view.frame.size.width, self.view.frame.size.height/2.5) style:UITableViewStyleGrouped];
    }
    UITableView *tableViewToBeTransfered = self.spreadSheet;
    return tableViewToBeTransfered;
}
...
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *cellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    cell.textLabel.text = @"Test";
    return cell;
}

表示VC.m

#import "DisplayingVC.h"
#import "TableViewGenerator.h"

@interface CTTOVViewController ()

@end

@implementation CTTOVViewController

- (void)viewDidLoad{
    [super viewDidLoad];
    UITableView *spreadSheet1;
    if (!spreadSheet1) {
        TableViewGenerator *tableVC = [[TableViewGenerator alloc]init];
        spreadSheet1 = [tableVC getTableViewForOtherVC];
        [self.view addSubview:spreadSheet1];
    }
}
...
@end

テーブルの塗りつぶしで何か間違ったことをしたと思いますが、何が見つかりません。どんなヒントでも大歓迎です。

前もって感謝します

4

1 に答える 1

0

テーブル ビューの dataSource および delegate プロパティをどこにも設定していないように見えるため、これらを適切に設定する必要があります。

別の面では、UITableView 自体ではなくモデルを生成すると、達成しようとしていることがおそらくはるかに簡単になります。無料の Sensible TableView フレームワークによって提供されるモデルを確認することをお勧めします。これらのモデルを使用すると、時間を大幅に節約できます。

于 2013-03-24T23:34:15.193 に答える