1

仅横向应用程序。在我的主窗口 xib 上,我有一个 UIView。我正在以编程方式将 UIScrollview 加载到工作正常的 UIView 中。在那个滚动视图上,我有一个按钮,可以通过 presentModalViewController 调用调出一个“详细”屏幕(一个单独的视图控制器):

    LearnITViewController *learnit = [[LearnITViewController alloc] initWithNibName:@"LearnITViewController" bundle:nil];
self.learnitView = learnit;
[self presentModalViewController:learnit animated:YES];    
[learnit release];

该动作被调用,但当滚动视图是子视图时,模态视图不会占据整个屏幕。相反,它弹出到父滚动视图并翻转方向等。不是所需的行为。

当呼叫来自滚动视图时如何使模态视图全屏显示的任何指导,滚动视图是主 xib 上容器 UIView 的子视图?

4

4 回答 4

1

感谢所有的评论。在覆盖 presentModalViewController 并在循环中冒泡直到到达主控制器(在我的情况下为 HomeViewController)的某处找到了提示。像冠军一样工作。

- (void) presentModalViewController:(UIViewController *)screen animated:(BOOL)animated {
    UIResponder *responder = self;
    while (responder && ![responder isKindOfClass:[HomeViewController class]]) {
        responder = [responder nextResponder];
    }
    [(UIViewController *)responder presentModalViewController:screen animated:YES];
}

我正在覆盖 UIScrollview 的 .m 文件,其中包含进行调用的按钮。

于 2011-06-01T14:54:01.190 回答
0

尝试添加subview,而不是presentModelViewController

LearnITViewController *tempView = [[LearnITViewController alloc] initWithNibName:@"LearnITViewController" bundle:[NSBundle mainBundle]];
self.learnITViewController = tempView;
[tempView release];
[self.view addSubview:mainMenuView.view]; 

并添加这个

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
// Return YES for supported orientations.
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);//or left
}
于 2011-06-01T04:42:46.767 回答
0
LearnITViewController *learnit = [[LearnITViewController alloc] initWithNibName:@"LearnITViewController" bundle:nil];
self.learnitView = learnit;
[self.learnitView setsetWantsFullScreenLayout:YES];

或者

self.learnitView.wantsFullScreenLayout = YES;
[self presentModalViewController:learnit animated:YES];    
[learnit release];
于 2011-06-11T12:13:06.960 回答
-2

而不是self添加UIViewController.superview

LearnITViewController *learnit = [[LearnITViewController alloc] initWithNibName:@"LearnITViewController" bundle:nil];
self.learnitView = learnit;
[self.view.superview presentModalViewController:learnit animated:YES];    
[learnit release];
于 2011-06-01T04:52:03.033 回答