1

以下のスクリーンショットに示すように、いくつかの情報を含むUITableViewがあり、行を選択するとABUnknownPersonViewControllerが呼び出されます。それを却下してUITableViewに戻ることができるようにするために、私は次のコードを持っています:

ABUnknownPersonViewController *unknownPersonView = [[[ABUnknownPersonViewController alloc] init] autorelease];

[unknownPersonView setUnknownPersonViewDelegate:self];
[unknownPersonView setDisplayedPerson:personRecord];
[unknownPersonView setAllowsAddingToAddressBook:YES];

UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Επιστροφή" style:UIBarButtonItemStylePlain
                                                                 target:self action:@selector(goBackToView)];

unknownPersonView.navigationItem.title = @"Προσθήκη στις επαφές";
unknownPersonView.navigationItem.leftBarButtonItem = anotherButton;

navigationController = [[[UINavigationController alloc] initWithRootViewController:unknownPersonView] autorelease];
//navigationController = [[[UINavigationController alloc] initWithRootViewController:self] autorelease];
//self.navigationItem.rightBarButtonItem = anotherButton;

[self presentModalViewController:navigationController animated:YES];
} // didSelectRowAtIndexPath ends here

- (IBAction)goBackToView {
    [self dismissModalViewControllerAnimated:YES];

}
- (void)unknownPersonViewController:(ABUnknownPersonViewController *)unknownPersonView didResolveToPerson:(ABRecordRef)person {
//  CallerIDAppDelegate *delegate = (CallerIDAppDelegate *)[[UIApplication sharedApplication] delegate];
    [navigationController dismissModalViewControllerAnimated:YES];


}

問題は(ご覧のとおり)、ABUnknownPersonViewControllerが実際には「戻る」ボタンである「Επιστροφή」ボタンによって閉じられると、tableViewと青いUIButtonを保持しているビューが数ピクセル下に移動することです。

これを引き起こしている可能性のあるものについて何か助けはありますか?

スクリーンショットhttp://dl.getdropbox.com/u/1237004/problem.jpg

4

3 に答える 3

0

ここにナビゲーションコントローラーを設定することの価値がわかりません。あなたはただ;で提示することができABUnknownPersonViewControllerます[self presentModalViewController: unknownPersonView]。戻るボタンでビジュアルナビゲーションバーを選択するためにそれを行っている場合は、ナビゲーションバーとボタンを不明な人のビューに追加するだけです。

UINavigationControllerを作成しているが、通常のナビゲーションメソッド(pushViewController:animated:およびなどpopViewControllerAnimated:)を使用せず、代わりにから継承されたモーダルメソッドを使用しているという混合メタファーのようUIViewControllerです。

于 2009-09-07T19:42:05.470 に答える
0

、、、および-viewWillAppearでビューのフレームをチェックして、これをデバッグし-viewDidAppearます。-viewWillDisappear-viewDidDisappear

autoresizingMaskビューの、および親ビューのautoresizesSubviewsプロパティも確認してください。

于 2009-09-07T18:23:28.043 に答える
0

次の行を追加するようです:

[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];

私のviewWillAppearで:モーダルView Controllerが閉じられたときにビューが動かないようにしました。ただし、初期位置はすでに下に少しずれていましたが、IB のすべてのアウトレットを上に移動して修正し、問題ないようにしました。

于 2009-09-12T13:04:56.113 に答える