我想显示模态视图,但我有两个问题:
在iOS 6中没有presentModalViewController,我必须使用presentViewController,它只是显示我的第二个ViewController,就像模态segue而不是没有全屏选项的模态窗口,
我的第二个问题是如何从UICollectionViewController显示模态窗口。我尝试使用presentViewController,但它只适用于ViewController而不是CollectionViewController。
我想要做的最好的例子就是这个(Instagram)。他们是如何制作这个模态窗口的?是因为它仍然适用于较旧的iOS版本而且还不是iOS 6吗?或者还有另一种方法可以从UICollectionViewController中显示这样的模态窗口吗?
由于
答案 0 :(得分:2)
如果我理解正确您要实现的目标,那就是将ViewControllers
提交给父母,并在后台仍然看到父ViewController
。
第一个解决方案:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewController"];
vc.view.backgroundColor = [UIColor clearColor];
self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext; //self.modalPresentationStyle might do a better job here
[self presentViewController:vc animated:NO completion:nil];
确保您的SecondViewController
内容小于当前的``ViewController`,并且您可以在StoryBoard \ xib中看到它的背景颜色。背景颜色将清晰,并将创建透明效果。
第二个解决方案:
创建一个容器(iOS 6及更高版本,如果您打算使用Storyboard IB,低于此值将允许您创建容器,但只能创建容器)。
设置父级大小的容器大小3/4,并将第二个viewcontroller连接到它。而不是将\推送到第二个视图控制器,你可以
myContainer.alpha = 1;
在屏幕上显示。
答案 1 :(得分:0)
我将看一下UIContainerView的文档,它用于将视图控制器显示为另一个视图控制器的子视图,其方式与非全屏模式演示文稿类似。
答案 2 :(得分:0)
正如您所说presentViewController
仅适用于UIViewController
而非UICollectionViewController.
然后只需在UIViewController
的标头文件中导入CollectionViewController
类,如下所示:
#import <UIKit/UIKit.h>
@class UIViewController;
@interface MyCVController : UICollectionViewController
@end