如下面的屏幕截图所示,我有一个带有一些信息的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被“Επιστροφή”按钮解散时,实际上是“Back”,持有tableView和蓝色UIButton的视图被移动几个像素到底部!
对可能导致此问题的任何帮助?
答案 0 :(得分:0)
通过检查-viewWillAppear
,-viewDidAppear
,-viewWillDisappear
和-viewDidDisappear
中的视图框架进行调试。
同时检查视图的autoresizingMask
和父视图的autoresizesSubviews
属性。
答案 1 :(得分:0)
我不确定在这里看到设置导航控制器的价值。您可以使用ABUnknownPersonViewController
;来展示[self presentModalViewController: unknownPersonView]
。如果您是为了通过后退按钮选择可视导航栏,那么只需在未知人员视图中添加导航栏和按钮。
这似乎是一个混合的比喻,即创建UINavigationController
但不使用其常用的导航方法(例如pushViewController:animated:
和popViewControllerAnimated:
),而是使用从{继承的模态方法{1}}。
答案 2 :(得分:0)
似乎添加了这一行:
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO];
在我的viewWillAppear中:当模态视图控制器被关闭时,视图不会移动。然而现在初始位置已经略微错位到底部但通过将IB中的所有外部移动到顶部来修复它,所以看起来没问题。