1

「ViewControllerA」と「ViewControllerB」という 2 つのビューコントローラーがあるとします。私がやっていることは、viewControllerA でボタンが押されたときに、ローカル サーバーが値を返し、それを変数 "user" に格納することです。その後、この変数を viewControllerB に渡します。

実際、両方のプロセスを正常に実行できますが、同時には実行できません。つまり、サーバーから応答を受け取り、それを文字列変数に格納できます。デリゲート メソッドを使用してそれを行います。

 - (void)connectionDidFinishLoading:(NSURLConnection *)connection 

なのでこちら側は問題ありません。

一方、次を使用して、viewControllerA から viewControllerB に変数を渡すこともできます。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([segue.identifier isEqualToString:@"vcSegue"]){
        ViewControllerB *controller = (ViewControllerB *)segue.destinationViewController;
        controller.stringVariable = @"content of the string";
    }
}

サーバーから持っている文字列変数をviewControllerBに渡したいとき、変数がnullになるという問題に直面しています。プッシュアクションを制御するにはどうすればよいですか?私が理解し-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender- (void)connectionDidFinishLoading:(NSURLConnection *)connectionいることは、サーバーからの応答が正常に行われる必要があるということです。その後、プッシュアクションを実行する必要がありますが、その方法がわかりません。助けてくれてありがとう。

4

1 に答える 1

2

おそらくIDを渡して独自の呼び出しを行うことにより、ViewController Bが独自の詳細データをロードできるようにすることを検討してください。データのロード中に進行状況 HUD を表示できます。

識別子を渡したい場合は、カスタム init 関数を使用して行うことができます。

- (id)initWithEvent: (NSString *) identifier
{
    self = [super init];
    if (self) {
        // Custom initialization
        theIdentifier = identifier;                
     }
      return self;
}
于 2013-04-11T14:30:12.303 に答える