这是我的问题。
[self presentModalViewController:nw animated:YES];
问题在于,如果我在打开模式视图的同时单击标签栏,它会打开第二个视图,但第一个视图的表格不起作用,因为模态视图仍然打开,但它显示为闭合。
这是一种在全屏幕上打开模式视图覆盖标签栏的方法吗?
或者还要从另一个视图检查模态视图是否关闭?
修改
我尝试了所有这些代码:
nw = [[NewsViewController alloc] initWithNibName:@"NewsViewController" bundle:nil];
nw.modalInPopover = YES;
nw.wantsFullScreenLayout = YES;
nw.hidesBottomBarWhenPushed = YES;
nw.contentSizeForViewInPopover = CGSizeMake(320, 480);
nw.modalPresentationStyle = UIModalPresentationFullScreen;
nw.view.frame = [[UIScreen mainScreen] applicationFrame];
[nw.view setNeedsLayout];
但没有!它不会全屏进入!
有什么好主意吗?
谢谢,
阿尔贝托
答案 0 :(得分:1)
如果您要呈现的视图是全屏,则应该隐藏标签栏。也就是说,您可能需要以编程方式重新调整视图大小,以使其与UIWindow的大小相同。
你应该能够做一些......
[nw setFrame:[[UIScreen mainScreen] applicationFrame]];
[nw setNeedsLayout];
......实现这一目标。 (对不起,我现在在Windows的盒子上,所以我无法确认。希望有人会在需要时提供任何调整。)
然后,您应该通过原始类中的委托方法关闭初始模态视图。 (请参阅Apple View Controller Programming Guide for iOS的“关闭模态视图控制器”部分。)然后,原始类将处置模态视图。
答案 1 :(得分:0)
使用通知解决了!
当标签更改时,我发送通知并关闭模态控制器。
- (BOOL)tabBarController:(UITabBarController *)tbController shouldSelectViewController:(UIViewController *)viewController {
[[NSNotificationCenter defaultCenter] postNotificationName:@"DataComplete" object:nil];
return YES;
}
在我的视图中,课程会收到通知并关闭控制器!
- (void)downloadDataComplete:(NSNotification *)notif {
NSLog(@"Received Notification");
[self dismissModalViewControllerAnimated:YES];
}
现在可以重新打开模式视图,同时更改标签!
这是一种解决方法,但有效!
阿尔贝托。