0

Apple の Dialer アプリケーションのように見える iPhone アプリケーションを作成しています。問題は、私がそれにいくつかの問題を抱えているということです。Apple のコントローラーは非常に扱いにくく、多くの問題を抱えています。

TabBar アプリケーションがあり、タブの 1 つで ABPeoplePickerNavigationController を作成しました。ユーザーが連絡先を削除および編集できるようにしましたが、2 つの問題があります。1) 編集を押すと、連絡先を削除します。下からアクション シートがポップアップしますが、[キャンセル] ボタンの一部が上に表示されます。 TabBar、私はそれを押すことができません。キャンセルボタンは、その下のTabBarが上にない上部を押した場合にのみタッチされます。(すべての上にアクションシートが表示されている場合でも)。

2) たとえば、ユーザーが連絡先の名前を編集して [戻る] ボタンを押した場合、連絡先のリストでその人の名前が新しい名前に変更されません。

私のアーキテクチャは次のとおりです。タブバーボタンのVCの「ビューが表示されました」にABPeoplePickerNavigationControllerを作成します。新しい人を追加するために、新しいコントローラーを作成し、次のように言います:self modalviewcontroller:newPerson、完了を押すかキャンセルすると、「ViewDidAppear」が再度呼び出され、連絡先に新しい人が表示されるのはこのためです。しかし、連絡先の編集には pushviewcontroller:person を使用するため、ビューがポップしても viewDidAppear 関数は呼び出されません。

私に何ができる?ありがとう!

4

1 に答える 1

0

最初の問題を解決するには、アクション シートの表示方法を変更する必要があります。次のようなものを使用して、タブバーから表示できます。

[actionSheet showFromTabBar:self.tabBarController.tabBar];

または、ウィンドウのビューに表示することをお勧めします

[actionSheet showInView:[[[UIApplication sharedApplication] delegate] window]];

2 番目の問題を解決するには、[戻る] ボタンをタップする前に、フィールドの編集が正しく終了していることを確認する必要があります。実際、テキスト フィールドをフォーカスし、前のページに戻る前にそれを破棄しないと、データを保存するために処理するイベントが発生しません。メソッドでこれらの状況を処理しようとすることができviewWillDisappear:ます。

于 2011-06-20T07:35:45.723 に答える