0

2 つの UIViewControllers があり、それらの間で問題なく値を渡すことができます。問題は、3 番目のビュー (UITableViewController) に値を渡そうとしたときに発生します。これが私のコードです

すべての接続が正しく設定され、テーブルビューがここで呼び出されます。

- (IBAction)goToTableView:(id)sender {
    TableMovieViewController *vc=[self.storyboard instantiateViewControllerWithIdentifier:@"TableMovieViewController"];
    vc.finalResult.text=stringFromFirstView;
    [self presentViewController:vc animated:YES completion:nil];
}

vc.finalResult.text例によって持っています、私は確認しました、そして"Test Call"値はそこにあります。

テーブルビューファイルで:

.h ファイル:

@property(strong, nonatomic)UITextField *finalResult;

.m ファイル:

@synthesize finalResult;

- (void)viewDidLoad
{
    [super viewDidLoad];
    UINavigationBar *nav = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, 320, 40)];
    UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:finalResult];
    [nav pushNavigationItem:navItem animated:FALSE];
    [self.view addSubview:nav];
}

前のfinalResultビューから渡された値が設定されることはありません。

何か案は

ありがとうロドリゴ

4

1 に答える 1

2

変化する:

UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:finalResult];

と:

UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:finalResult.text];

finalResultはタイプUITextFieldではありませんNSString。 現在設定しているa ではなく aをinitWithTitle:要求します。NSStringUITextField

編集:私の回答に対するコメントとして意図された編集を読んだとき、あなたUITextField *finalResultは が nil-value であると言います。これはおそらく、UITextField を適切に割り当てて初期化しなかったためです。

finalResult = [[UITextField alloc] init];少なくともテキストを設定する前に行う必要があります。のinit関数で行うことをお勧めしますUITableViewController

于 2013-04-17T15:36:06.887 に答える