1

API からいくつかのデータをロードするメイン ビュー コントローラーがあります。そこから、特定の取引の詳細を表示する別の画面に移動します。メインコントローラーに戻りたいのですが、使用するとprepareForSegueメインコントローラーに戻りますが、API呼び出しを行ってデータを再度ロードします。メインコントローラーの状態を保持したい。

View Controllerの状態を保持する方法と、再度ロードせずに2番目のコントローラーからメインコントローラーにセグエする方法を教えてください。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self FetchDeals];
    [self Getdeals];
}

fetch deal メソッドは API 呼び出しを行い、getdeals はそれをテーブルビューに取り込みます。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"Dealdetail"])
    {
        //NSLog(@"New controller");
        DealDetailController *detail = (DealDetailController *)[segue destinationViewController];

        detail.detailimage = imagepath;
    }
}

DealDetailController は、メイン コントロールに戻る 2 番目のビュー コントローラーです。

DealDetailController のコード:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    MainappViewController *maincontrol = (MainappViewController *)[segue destinationViewController]; 
}
4

2 に答える 2

1

ここで本当に使いたいのは'Unwind Segue'です。

このブログ投稿では、これを行う方法について (ビデオ付きで) 説明しています。

Unwind セグエをカバーする WWDC 2012 ビデオへの回答が示されているこの質問も参照してください。

于 2013-05-22T08:33:58.697 に答える
0

popViewController を使用します。状態を保持します。すでに mainViewController をロードしています。つまり、それがスタック上にあることを意味します。この viewController を再び必要とする場合は、単純に popViewController を使用します。

于 2013-05-22T08:13:57.567 に答える