![]() |
1
14
我建议使用委托模式来解决您的问题。创建属性
以及相应的协议
当用户完成查看后(如点击保存按钮),发送此消息:
现在,将委托设置为视图控制器,它应该管理整个事件,当视图控制器完成时,它将得到通知。请注意,您需要视图控制器来关闭模式视图控制器。但是,从逻辑上讲,这是有意义的,因为它首先是呈现模态视图控制器的对象。 这就是苹果解决这个问题的方法,例如uiImagePickerController和uiPersonPickerController。 |
![]() |
2
4
有几种方法可以处理这个问题。最简单的方法可能只是将uiviewController属性添加到myModalView控制器中,并在显示它之前将其设置为page1controller:
只要确保将适当的实例变量@property和@synthesis for logicalparent添加到mymodalview控制器,就可以将数据通信回触发模式对话框的viewcontroller。这也适用于在不同级别的导航之间来回传递数据,然后再将它们推送到堆栈上。 在执行此操作时要担心的一个重要问题是,如果不小心,很容易出现保留循环。根据具体的结构,您可能需要使用分配属性。 |
![]() |
3
1
我也遇到了同样的问题。显然,如果将uiviewController嵌入到导航控制器中,那么当从该uiviewController以某种方式呈现另一个uiviewController时,演示者认为演示者是导航控制器。换句话说,ParentViewController不正确。 我敢打赌这是一个bug:要么就是这个,要么文档看起来不完整。我会询问的。 |
![]() |
4
1
只是遇到了同样的问题。我相信这是个虫子。我的场景如下: 按此顺序带有A、B和C视图控制器的导航层次结构。在C上有一个按钮可以打开一个称为D的模态视图控制器。一旦D出现,导航控制器就会从它的层次结构中删除C,这是一个糟糕的行为。一旦D被解除,导航控制器 实例化 一个新的C型视图控制器,并将其推到其层次结构中以恢复原来的视图控制器。可怕的。我的解决方案就是用这种方式破解导航层次结构(一个非常糟糕的解决方案,但效果很好)。使用二维数组,您可以实现堆叠模式):
这两种方法是在我维护主要导航层次结构的地方定义的:应用程序委托。导航和导航层次结构的定义方式如下:
|
![]() |
WkWk · Apple Watch动作通知不起作用 3 年前 |
![]() |
Otavio Miguel · 在手机中保留我自己未发布的ios应用 3 年前 |
![]() |
Nico Passaglia · 移动键盘向上移动站点 7 年前 |