弹出框旋转
我的弹出窗口有问题。我所做的是:
- 将我的应用程序从横向旋转到纵向
- 在弹出窗口中显示 MasterViewController
- 旋转回横向
注意: masterViewController = splitViewController左侧的View detailViewController = splitViewController 右侧的视图
在旋转结束时,masterViewController 向下移动,现在我在导航和导航之间有空白区域。视图控制器。 (对于图片:http://www.flickr.com/photos/vriel/5470798582/< /a>)。当我在旋转之前销毁弹出窗口(通过点击弹出窗口外部)时,这个问题不存在。
在我的detailViewController 中,我有以下代码:
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (popover && popover.popoverVisible) [popover dismissPopoverAnimated:YES];}
-(void)splitViewController: (UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc {
UIBarButtonItem* button = [UIBarButtonItem allocinitWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(showPopover:)];
}
-(void)splitViewController: (UISplitViewController*)svc willShowViewController: (UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {
if (self.navigationItem) [self.navigationItem setLeftBarButtonItem:nil animated:NO];
}
-(void)showPopover:(id)sender {
UINavigationController* c = (UINavigationController*)[self getApplicationDelegateObject:@selector(masterViewController)];
if (c) {
if (!popover) {
popover = [UIPopoverController allocinitWithContentViewController:c];
} else {
popover.contentViewController = c;
}
if (popover) {
[popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
}
}
I have problem with popover. What I did were:
- Rotate my application from landscape to portrait
- Show MasterViewController in Popup
- Rotate Back To Landscape
Note:
masterViewController = View in the left side of splitViewController
detailViewController = View in the right side of splitViewController
At the end of rotation, masterViewController is shift down and now I have blank space between navigation & viewController. (for image: http://www.flickr.com/photos/vriel/5470798582/). This problem is not exist when I destroy the popover before the rotation (by tapping outside popover window).
In my detailViewController, I have the following code:
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (popover && popover.popoverVisible) [popover dismissPopoverAnimated:YES];}
-(void)splitViewController: (UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc {
UIBarButtonItem* button = [UIBarButtonItem allocinitWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(showPopover:)];
}
-(void)splitViewController: (UISplitViewController*)svc willShowViewController: (UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {
if (self.navigationItem) [self.navigationItem setLeftBarButtonItem:nil animated:NO];
}
-(void)showPopover:(id)sender {
UINavigationController* c = (UINavigationController*)[self getApplicationDelegateObject:@selector(masterViewController)];
if (c) {
if (!popover) {
popover = [UIPopoverController allocinitWithContentViewController:c];
} else {
popover.contentViewController = c;
}
if (popover) {
[popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
终于找到问题所在
之前:
在我创建自己的栏按钮项目来处理旋转之前。事实上,我不应该担心弹出窗口,因为苹果已经处理它
正确的一个:
Finally found where the problem is
previously:
Before I create my own bar button item to handle rotation. In fact, I should not worry about the popover because apple already take care of it
correct one: