0

私はナビゲーションコントローラーを持っています。私のセカンドビューでは、タップされたときに最初のviewControllerに移動してそこにテキストを設定するボタンが必要です。

したがって、私のボタン (secondView) には次のものがあります。

SearchViewController *svc=[[SearchViewController alloc]init];
[svc setValueMethod:@"randomString"];
[self.navigationController popToRootViewControllerAnimated:YES];

私の最初のビューで:

-(void)setValueMethod:(NSString *)myPassedString
{
    _searchField.text = myPassedString;
}

しかし、_searchField は現在 null です。しかし、最初にアプリに入力すると、うまくいきます。_searchField.text = @"aString"; を作成できます。その仕事。しかし、secondView からポップした後、null になります!

誰かがそれを手伝ってくれますか?

4

1 に答える 1

2

その理由は、次の行でsvcという名前のSearchViewControllerの新しいインスタンスを作成したためです。SearchViewController* svc = [[SearchViewControlleralloc]init];。ただし、このsvcインスタンスは、SearchViewControllerの元のインスタンス(アプリに入ったときに最初に表示されたインスタンス)と同じではありません。

デリゲートプロトコルを使用する必要があります。このタイプのシナリオに使用されます。このSOにはコード例があります。

于 2012-06-26T17:46:55.070 に答える