首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从UIViewController到UIImagePickerController到其他UIViewController

从UIViewController到UIImagePickerController到其他UIViewController
EN

Stack Overflow用户
提问于 2014-01-25 17:20:58
回答 1查看 410关注 0票数 0

我正在开发一个iOS应用程序,用户应该能够创建有多张照片的对象。

现在,我有两个ViewControllers: a和B。视图控制器A显示所有已创建对象的列表,并显示一个按钮以切换到查看控制器B。视图控制器B负责创建新对象。它由一个CollectionView (显示为该对象拍摄的所有照片)和一个按钮(启动一个UIImagePickerController以获取新照片)组成。

用例:

  1. 在ViewController A中,用户单击按钮创建新对象
  2. ViewController B在集合视图中加载没有照片。
  3. 用户必须单击ViewController B中的按钮才能加载UIImagePickerController。
  4. 用户拍照,返回ViewController B
  5. 用户可以拍另一张照片。

我想把第二步和第三步结合起来。

  1. 用户单击ViewController A中的按钮
  2. UIImagePickerController被加载
  3. 用户拍照,返回ViewController B

现在,我在viewDidAppear of ViewController B中启动了ViewController B,但是先出现了ViewController B,然后是UIImagePickerController。

编辑:我正在使用一个故事板来做这一切。ViewController A在一个导航控制器中,ViewController B在另一个导航控制器中,我正在使用一个模态故事板来进行转换。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-25 18:40:25

如果您将图像选择器表示为模态视图,我的想法是在视图控制器B上编写一个方法,该方法在任意视图控制器上显示图像选择器控制器。例如:-(void)presentImagePickerFromViewController:(UIViewController *)vc completion:(void (^)(void))completion。在您的View中,实例化一个View对象,并在它上调用此方法以传递视图控制器的self。在完成块中,现在显示导航堆栈上没有动画的。通过这种方式,您的View直接从图像选择器获取信息,封装视图控制器B中的所有图像代码,并让您在选择器完成后直接进入View。

另一方面,如果您在导航堆栈上显示图像选择器,则可以从一个setViewControllers:animated:回调调用导航控制器上的UINavigationControllerDelegate方法。我自己还没有测试过它,但是我相信这个方法允许您将视图控制器插入到导航堆栈中。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21353649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档