0

ラベルのテキストを別のクラスのセルのテキストに設定したい。

私のMasterViewControllerには次のものがあります:

// SAVE TEXT OF SELECTED CELL

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    cellString = cell.textLabel.text;
}

//SHARES VARIABLES BETWEEN CLASSES

- (ChemProjectMasterViewController*) sharedVariable
{
    static ChemProjectMasterViewController *myVariable = nil;

    if (myVariable == nil)
    {
        myVariable = [[[self class] alloc] init];
        myVariable.sharedCellString = cellString;
    }

    return myVariable;
}

これも.hにあります

@interface ChemProjectMasterViewController : UITableViewController

@property (nonatomic)NSString *cellString;
@property (nonatomic)NSString *sharedCellString;
+(ChemProjectMasterViewController*) sharedVariable;

@end

このメソッドにアクセスしたいクラスは DetailViewController です。その中で私は持っています:

detailDescriptionLabel.text = [ChemProjectMasterViewController sharedVariable].sharedCellString;

ここで、detailDescriptionLabel は単なるテキスト ラベルです。

** プログラムは正常にコンパイルされますが、ボタンをクリックするとラベル テキストが変更されるように設定されています。ボタンを押してクラッシュするまで、アプリはスムーズに実行されます。主な目標は、DetailViewController のラベル テキストを MasterViewController のセルのテキストに設定することです。助けてくれてありがとう!

4

1 に答える 1

0

私はいくつかのことを見ています。

まず、.hではクラスメソッド(+)として宣言しましたが、.mではインスタンス(-)です。

2つ目は@property (nonatomic)NSString *sharedCellString;、安全でなく、保持されていないものです。強くします。

そして、それがうまくいくかどうか、親切に私に知らせてください?

于 2012-11-29T05:04:24.260 に答える