presentmodalviewcontroller - 如何不让它覆盖整个屏幕?

Posted

技术标签:

【中文标题】presentmodalviewcontroller - 如何不让它覆盖整个屏幕?【英文标题】:presentmodalviewcontroller - how to not to make it cover entire screen? 【发布时间】:2011-09-24 19:47:16 【问题描述】:

我在它的工具栏上有一个标签栏和一个搜索按钮。因此,现在每当用户单击搜索时,我都希望出现一个视图(presenetmodalviewcontroller),但当前的模态视图控制器覆盖整个屏幕,有什么方法可以仅覆盖当前视图(即当前标签栏中的视图)?现在我该怎么做?

谢谢, 图沙尔楚塔尼

【问题讨论】:

【参考方案1】:

根据定义,模态视图控制器旨在“中断”应用程序的当前流程以处理其他事情(请求用户/通行证,请求联系人发送电子邮件等)。您可以在View Controller Programming Guide 中阅读更多相关信息。

您最好在当前选项卡中使用导航堆栈 (UINavigationController) 来处理必须呈现给用户的其他视图控制器。这是another stack overflow question,关于如何将导航控制器放置在标签栏应用程序中。使用导航堆栈,您可以推送视图控制器 (pushViewController:animated:),并为单个选项卡项管理无限深度的视图控制器。

【讨论】:

【参考方案2】:

一个选项是标签栏内的视图位于 NavigationController 内。然后,而不是 presentModalViewController,您可以将 ViewController 推入堆栈。这将使底部的 tabBar 可见,并允许您向后导航。

不过,这确实会在顶部添加一个导航栏。不确定这是否是您的应用的问题。

【讨论】:

【参考方案3】:

所以这就是我能够做的不是最好的代码但它有效我所做的几乎就是将subview添加到uiimageview(应该使用UIWindow但谁在乎?)

 -(void)revers

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
NSLog(@"Revenre is called");
otherViewImage.transform = CGAffineTransformMakeTranslation(0,-380);
[otherViewImage addSubview:hup.view];
[UIView commitAnimations];


【讨论】:

以上是关于presentmodalviewcontroller - 如何不让它覆盖整个屏幕?的主要内容,如果未能解决你的问题,请参考以下文章