私は非常に複雑な状況にあります(私にとっては)解決しようとしていますが、これまでのところ問題があります。
ここで、アプリケーションの構造の概要を説明し、次に私が抱えている問題について説明します。私が使用している名前は、私が使用しているデータの機密性のために作成されています.
secondToLastViewController // is a UITableView on the navigation stack
lastViewController // is just a normal UIView that i want to push onto the navigation stack
RequestClass // this class dose requests to my database and passed the data back to correct classes
getInfoClass // class is used for this specific request stores the information correctly and passes it back to secondToLastViewController
したがって、ユーザーがsecondToLastViewController内でdidSelectRowAtIndexPathを開始すると、 RequestClassを使用してデータを要求します
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//..
[RequestClass Getinfo:storedInfoPram];
}
今、スレッドは私のRequestClassに向けて発射され、次に受信されたいくつかのデータについて DB にクエリを実行し、このデータは私のgetInfoClassに渡されます。これを行った理由は 、 RequestClass allさまざまなことを行うと、この特定のリクエストによって大量のデータが返され、正しいオブジェクト タイプに分類する必要があるため、それを行うためにこのクラスを作成しました。
とにかくgetInfoClass内ですべてを正しいタイプなどに並べ替え、このデータをrecivedDataというメソッドで secondToLastViewController に戻します。これは、問題が発生していると思う場所でもあります... secondToLastViewControllerの新しいインスタンスを作成すると、問題はありませんすでにスタック上にあり、元のリクエストの送信元であった同じsecondToLastViewControllerにデータを戻す方法を知っています。
- (void) recivedData {
// do some stuff then pass data back to secondToLastViewController
SecondToLastViewController *sec = [[SecondToLastViewController alloc] init];
[sec sendGetSeriesArrays:pram1 Pram2:pram2 Pram3:pram3 Pram4:pram4 Pram5:pram5];
}
SecondToLastViewControllerに戻ると、スレッドはこのメソッドに到達します
- (void)sendGetSeriesArrays:pram1 Pram2:pram2 Pram3:pram3 Pram4:pram4 Pram5:pram5{
// call detailed view onto the stack
lastViewController *last = [[lastViewController alloc] initWithNibName:@"lastViewController" bundle:nil];
[self.navigationController pushViewController:last animated:YES];
}
スレッドがこのポイントに到達した後、何も起こりません...すべてのデータがそこにあり、送信する準備ができていますが、新しいビューがコントローラースタックにプッシュされることはありません..内部getInfoClass
最初に知りたいのは、sendGetSeriesArrays で受信したデータを最終的なビューに渡す方法と、最後のビューをナビゲーション スタックにロードする方法です。