AppDelegate.h ファイルに NSMutableString が定義されています。
//AppDelegate.h
@interface AppDelegate : UIResponder <UIApplicationDelegate>{
@public
NSMutableString *nidForDetailDisplay;
}
次に、この文字列を ViewController.m ファイルに設定します。テーブルビューから詳細ビューに渡す文字列 (nidForDetailDisplay) を格納しています。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
rowNumber = indexPath.row;
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
// this is where I set the string to a string of text
appDelegate->theNidForDetailDisplay = [arrayOfNids objectAtIndex:rowNumber];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
UIViewController *detailViewController;
DetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"detail"];
[self.navigationController pushViewController:detail animated:YES];
}
ViewController で theNidForDetailDisplay をログに記録すると、正しい文字列が得られます。
次に、後続の DetailViewController で、この更新された NSMutableString (nidForDetailDisplay) にアクセスしようとします。
-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSMutableString *storyid;
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
appDelegate->theNidOnDetailDisplay = storyid;
}
ただし、文字列 (storyid) または (theNidOnDetailDisplay) を出力すると、両方とも null が返されます。
ここで何か不足していますか?インスタンス変数を使用する必要がありますか? 前もって感謝します。