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

-viewWillAppear通过在、-viewDidAppear-viewWillDisappear和中检查视图的框架来调试它-viewDidDisappear

还要检查视图的autoresizingMask和父视图的autoresizesSubviews属性。

于 2009-09-07T18:23:28.043 回答
0

我不确定我在这里看到设置导航控制器的价值。你可以只ABUnknownPersonViewController[self presentModalViewController: unknownPersonView]; 呈现。如果您这样做是为了使用后退按钮拾取视觉导航栏,那么只需将导航栏和按钮添加到未知人员视图。

UINavigationController创建 a但不使用其通常的导航方法(例如pushViewController:animated:popViewControllerAnimated:)而是使用从 继承的模态方法似乎是一个混合比喻UIViewController

于 2009-09-07T19:42:05.470 回答
0

似乎添加了这一行:

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

在我的 viewWillAppear 中:当模态视图控制器被解除时,视图不会移动。然而,现在初始位置已经稍微错位到底部,但通过将 IB 中的所有出口移动到顶部来修复它,所以看起来没问题。

于 2009-09-12T13:04:56.113 回答