私の実際の問題を解決するのを手伝ってくれるといいのですが。
ナビゲーションコントローラーを使用して新しいプロジェクトを設定しました。プロジェクトのテーブルビュー用に、「TableViewController.h」および「TableViewController.m」という新しいクラスを追加しました。
このクラスでは、NSStringが他のクラスからアクセスするために.haプロパティで次のように宣言しました。
@property (strong, nonatomic) NSString *testString;
.mでは、次のように合成しました。
@synthesize testString;
ここで、次のように設定します-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath-テーブルビューコントローラーのメソッドは次のとおりです。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
testString = @"Hello, World!";
}
次に、セルをタップしたときに表示される次のビュー用の新しいUIViewControllerクラスを作成しました(これまでのところすべて機能します)。このUIViewControllerでは、「SecondView」と呼ばれ、TableViewControllerの.hファイルをインポートしました。さらに、SecondView.mにこのコードがあります。
-(void) viewDidLoad
{
[super viewDidLoad];
TableViewController *demoObject = [TableViewController alloc] init]
NSLog (@"Teststring is: %@" [demoObject.testString]);
}
シミュレータを起動すると、次の出力が得られます。テスト文字列は次のとおりです:(null)
TableViewControllerでtestStringをNSLogすると、「Hello、World」が表示されますが、SecondViewクラスに「転送」されて、必要な出力が生成されないのはなぜですか?