1

私はiPadアプリケーションでUIModalPresentationFormSheetを実装しました。新しいビューは部分的にサブビューをカバーし、ユーザーが選択できるようにします。しかし、このすべては素晴らしいです...モデルがUIModalPresentationFormSheetを使用して提示されている場合、サブビューのデータをリロードする方法

ユーザがオプションを選択したとき、下のビューを新しい詳細で更新したいが、それを動作させることはできません!

私はsetNeedsDisplayまたは[table reloadData]を使用しようとしました。 viewDidAppearメソッドとviewWillAppearメソッドの両方で使用します。

コードのためにいくつかのコード:

- (void)viewWillAppear:(BOOL)animated { 
    [self updateUserDetails]; 
    [self.myTableView reloadData]; 
} 

- (void)viewDidAppear:(BOOL)animated { 
    [self updateUserDetails]; 
    [self.myTableView reloadData]; 
} 

- (void)updateUserDetails { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:selection forKey:@"userDetail"]; 
} 

次のように私の遷移があります。予想通り、このラインは、アプリケーションの機能をコメントアウトされている場合:

myNavigationController.modalPresentationStyle = UIModalPresentationFormSheet; 

すべてのヘルプ感謝、感謝!

答えて

0

self.view.autolayoutSubviews = NO; UIはUIModalPresentationFormSheetの表示サイズを変更します。これにより、リロード処理が中断される可能性があります。

+1

"これはリロードプロセスを中断する可能性があります。"展開してください。 – adamdunson

+0

リロードプロセスの詳細がわかりません。UIModalPresentationFormSheetスタイルを使用すると、システムがビューのサイズを変更し、ビューコントローラが自動レイアウトのサブビューを行い、テーブルビューのサイズを変更することができます。リロードを呼び出します。私たちはソースコードを読むことができません。何が起こったのかわかりませんが、これは私にとってはうまくいきます。 – decazuk

0

私はあなたがviewDidAppearviewWillAppearではなく、ユーザの選択を検出したコードの近くにデータのリロードを置くべきだと思います。

関連する問題