问题标签 [presentviewcontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
328 浏览

ios - 底栏项目未出现在 presentViewController 中

在我的应用程序中,我动态加载一组图像,当用户点击图像时,它会打开一个新的 ViewController (MediaPreview),它会打开图像的大预览。

我创建 MediaPreview 控制器如下:

这将创建一个看起来像这样的 ViewController:

在此处输入图像描述

但是,底部导航栏似乎不见了,这在我的故事板中有概述:

在此处输入图像描述

如何确保底部导航栏按钮出现在我的视图中?

0 投票
3 回答
8424 浏览

ios - 关闭 ModalViewController 后刷新父 ViewController

在我的 iOS 应用程序中,用户可以从列表中选择一个图像,然后他们会看到一个包含图像和删除图像选项的模式。如果用户选择删除图像,她将返回到包含图像列表的原始 viewController。然后我需要刷新原始 ViewController 以考虑删除的图像。

当图像被删除到父视图控制器时,我尝试使用 NSNotificationCenter 进行广播。但是,似乎从未收到广播。

有没有其他方法可以

  1. 模式关闭后将数据发送回父 ViewController,并且
  2. 检测模式何时从父 ViewController 中消失?

(我尝试按照此处概述的示例进行操作,但似乎没有用)

下面是我的代码:

EditStepViewController(原视图控制器):

MediaPreviewViewController(第二个 ViewController):

然后,回到 EditStepViewController:

在此先感谢您的帮助!

0 投票
2 回答
1542 浏览

ios - 来自视图控制器的导航控制器

我在应用程序中使用 .xib 文件。我想要两个视图控制器正常的方式,并从第三个视图控制器,将它嵌入到导航视图控制器中。这是我想要的说明。

在此处输入图像描述

我知道我可以像这样将导航控制器嵌入模态呈现的视图控制器中。

但是,如果我将它嵌入导航控制器并推送它,应用程序会崩溃,并出现错误Pushing the same view controller instance more than once is not supported

有可能做到这一点吗?如果是这样,有人可以解释一下吗?

谢谢你。

注意:不要将代码片段与上图混淆。firstViewController代码中的不是中的第一个视图控制器。

0 投票
1 回答
122 浏览

ios - 按下覆盖按钮时不会关闭 imagePickerViewController

我已经使用带有 xib 文件的 UIViewController 类实现了一个带有按钮的自定义相机 overlayView 来访问 photoLibrary。覆盖加载成功,按钮工作正常。但是,当 photoLibrary 打开时,相机仍然在后台打开。photoLibrary 视图似乎只是覆盖了相机视图,我什至可以单击“拍摄”按钮应该在的位置并拍照……有人知道这里有什么问题吗?

提前致谢!

0 投票
5 回答
14289 浏览

ios8 - AppDelegate 中的 presentViewController 在 iOS8 中有延迟

所以我在 iOS7 中有一个完整的工作解决方案,它通过 AppDelegate 的 didFinishLaunching 中的 presentViewController 显示一个 LoginViewController。

基本上我正在做这样的事情:

在 iOS8 中,我看到了一个跳跃。首先我看到 backgroundViewController 然后大约 1 秒后出现登录。

那么,如何在 iOS8 中防止这种跳跃呢?

我看到有很多开发人员遇到这种问题,但仍然没有找到解决方案。

0 投票
4 回答
116 浏览

objective-c - 在视图控制器之间移动 Objective-C

我想知道你是否可以帮助我。我正在开发一个应用程序,其中有五个 UIView 控制器,每个控制器都有要完成和填写的字段。在页面底部,我创建了一个带有五个按钮的底部栏,每个控制器一个。

我想要的是:如果用户填写了一半,比如说 VC_1,然后转到 VC_2,在这里填写一些字段,然后返回 VC_1 或新的 VC3,那么之前的进度仍然存在。

我在每次按下按钮时都使用“presentViewController”进行了尝试,但是如果我回到 1 会发生什么情况是所有字段都是空的,可能是因为它会将 viewController 放在当前字段的顶部。不删除数据的一种方法是如果我使用dismissViewController,但这总是让我回到VC_1,如果我想从VC_3返回到VC2,这将不起作用。

我希望我的问题是有道理的,并且你们中的一个人可以解释我如何实现上述目标。

干杯,伦纳特

0 投票
4 回答
2067 浏览

ios - iOS 8 – 在设置关键窗口或关闭并立即呈现另一个视图控制器后快速呈现视图控制器时出现故障

自从在 iOS 8 上测试我的应用程序以来,我发现一个解决视图控制器初始化和演示的工作非常慢。

我曾经在 iOS 6 和 7 上使用过类似的代码:

这在 iOS 8 中变成了一个非常缓慢的地狱。根视图控制器现在显示为 0.5-1 秒,然后立即用呈现的视图重绘屏幕。此外,演示的缓慢开始引起Unbalanced calls to begin/end appearance transitions _rootViewController警告。

最初的快速提示是通过调用另一个函数来移动这两个条件,并以零延迟调用它,以便在下一个主运行循环中处理它:

或类似的东西。这解决了不平衡的调用问题,但视觉差距(rootviewcontroller、gap、presented one)变得(显然)更大。

当您将通常称为以下内容时,演示文稿的缓慢也很明显:

这应该是一段完全公平的代码,它曾经在 iOS 7 上执行直接转换而无需父视图控制器的可见轻弹。现在,同样的事情 - 过渡期间的父轻弹,即使它都在没有动画的情况下处理。

有人面临这个问题吗?有什么解决办法吗?我很想解决这个问题,而无需为UIWindow我需要完美传输的每一件事都用 s 做一些有趣的魔法。

0 投票
3 回答
420 浏览

ios - 应用返回前台时控制应用快照

我将实现一个特定ViewController的 - 每次我的应用程序进入前台时都会弹出 - 需要访问密码。

由于该应用程序已经成熟且有点复杂,我宁愿将此密码屏幕作为一个单独的 ViewController 处理,它出现在其他 VC 之上,通过诸如 applicationDidBecomeActive 之类的方法从 AppDelegate 调用:

这种方法的问题似乎是:当应用程序进入前台时,密码 ViewController 尚未绘制在屏幕上,并且在短时间内,真正的应用程序屏幕清晰显示。

即使我applicationDidEnterBackground提前触发在 中显示密码 ViewController,当应用程序回到前台时,实际的屏幕重绘总是会发生,从而不必要地显示应用程序屏幕。

任何人都可以建议最合适的方法让这个密码屏幕立即隐藏底层的 ViewControllers 吗?

alpha 设置从 0.0 切换到 1.0 的方法似乎也需要一些时间才能显示出来,并且到目前为止还没有工作。

谢谢!

0 投票
2 回答
1476 浏览

ios - 关闭堆栈中较低的 ViewController 的行为不符合预期

我正在构建一个复杂的应用程序,中间有一个分支。

在应用程序的某个时刻,会出现一个特定的 UIViewController,我们将其称为mainViewController(简称mainVC)。

使用以下mainVC代码通过代码呈现另一个视图控制器(出于隐私原因,我删除了其中的一部分):

所以secondVC稍后将展示另一个视图控制器,称为thirdVC. 这是使用自定义 segue 完成的,在上面代码中使用的故事板中设置,代码如下所示:

如您所见,此 segue 以模态方式(通过使用presentViewController:)和自定义动画(从右到左的幻灯片)呈现目标视图控制器。

所以基本上到这里一切都很好。我展示了secondVC一个经典的模态动画(从底部向上滑动)并展示了thirdVC我的自定义过渡。

但是当我想解散时thirdVC,我想要的是直接回到mainVC。所以我从以下调用thirdVC

这样,我dismissViewControllerAnimated:直接调用mainVC(由 引用self.presentingViewController.presentingViewController),我期望thirdVC用动画解除,而secondVC没有动画就消失。

正如 Apple 在 UIViewController 类文档中所说:

呈现视图控制器负责关闭它呈现的视图控制器。如果您在呈现的视图控制器本身上调用此方法,它会自动将消息转发到呈现的视图控制器。

如果您连续呈现几个视图控制器,从而构建一个呈现视图控制器的堆栈,则在堆栈中较低的视图控制器上调用此方法会解除其直接子视图控制器以及堆栈上该子视图控制器上方的所有视图控制器。发生这种情况时,只有最顶层的视图会以动画方式消失;任何中间视图控制器都简单地从堆栈中删除。最顶层的视图使用其模态转换样式被解除,这可能与堆栈中其他视图控制器使用的样式不同。

问题是这不是发生的事情。在我的场景中,thirdVC消失了,并secondVC使用经典的模态幻灯片到底部动画显示被解雇。

我究竟做错了什么 ?


编辑 :

所以@codeFi 的答案可能是在一个经典项目中工作,但这里的问题是我正在开发一个框架。mainVC在客户端应用程序中也是如此,secondVC并且thirdVC在我的框架中,在一个单独的故事板中。除了在我的代码中引用它之外,我无法以mainVC任何其他方式访问它,因此不幸的是,展开 segues 不是这里的选项。

0 投票
17 回答
105641 浏览

ios - 警告:尝试在其视图不在窗口层次结构中的 * 上呈现 * - swift

ViewController 如果数据模型中有任何已保存的数据,我正在尝试呈现。但我收到以下错误:

警告:尝试在其视图不在窗口层次结构中的 * 上呈现 *”

相关代码:

我尝试了使用 Google 找到的不同解决方案,但均未成功。