- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一周前我对此有点摸不着头脑,现在有了更多的 Cocoa 经验,我觉得我对可能发生的事情有所了解。
我正在制作一个由 UINavigationController 驱动的应用程序。在 AppDelegate 中,我使用“page 1”作为 Root View Controller 创建此类的实例。
UINavigationController *aNavigationController = [[UINavigationController alloc]
initWithRootViewController:page1ViewController];
现在这就是我遇到问题的地方。从“第 1 页”开始,我想使用一个模态视图 Controller ,它在界面上滑动,然后在用户进行编辑后消失。我在 Page1ViewController 内部使用这样的代码来做到这一点:
[self presentModalViewController:myModalViewController animated:YES];
当模态视图 Controller 消失时,我希望“第 1 页”上的值根据用户在模态视图 Controller 中输入的内容进行更改。因此,我编写了一些类似这样的代码,该代码驻留在模态视图 Controller 中:
[self.parentViewController dismissModalViewControllerAnimated:YES];
[self.parentViewController doSomethingPleaseWithSomeData:someData];
页面 1 的更新没有发生,我花了很长时间才意识到“doSomethingPleaseWithSomeData”消息没有发送到 Page1ViewController,而是发送到导航 Controller 。
使用导航 Controller 时是否总是会出现这种情况?我可能配置不正确吗?有没有一种简单的方法可以获取我想要的 View Controller (在本例中为 Page1ViewController)。
最佳答案
我建议使用委托(delegate)模式来解决您的问题。创建属性
@property (nonatomic, assign) id <MyModalViewDelegate> delegate;
以及相应的协议(protocol)
@protocol MyModalViewDelegate
@optional
- (void)myModalViewControllerDidFinish:(MyModalViewController *)aModalViewController;
@end
当用户完成您的 View (例如点击保存按钮)时,发送此消息:
if ([self.delegate respondsToSelector:@selector(myModalViewControllerDidFinish:)])
[self.delegate myModalViewControllerDidFinish:self];
现在,将委托(delegate)设置为应该管理整个事情的 View Controller ,当 View Controller 完成时它将收到通知。请注意,您需要 View Controller 来关闭模态视图 Controller 。但是,从逻辑上讲,这是有道理的,因为它是首先呈现模态视图 Controller 的对象。
这就是 Apple 在 UIImagePickerController 和 UIPersonPickerController 等中解决此问题的方法。
关于iphone - ParentViewController 始终是导航 Controller 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/244588/
场景:我有 2 个 VC - subview Controller 它有一个显示项目列表的 tableView。在表填充到我的 ParentVC 之后,我需要传递 tableView.contentS
我正在从导航 subview (ConnectionScreen) 中创建模态视图 (OnlinePeerBrowser)。我需要从模态视图的父 View 中引用方法。出于某种原因,模态视图认为它的父
我有 masterViewController 和 detailViewController。 Masterview 推送 detailView。回到 masteViewController 时,我想
我有一个带有 5 个选项卡的 tabBarController,第三个选项卡是一个导航 Controller ,其中 TableViewController 作为 Root View Controll
这是一个快速而肮脏的问题:我有一个“主” View Controller (VC),它是从使用导航 Controller 的父 VC 打开的。然后我有一个从“主”VC 打开(模式转场)的“子”VC。
当尝试访问我的 parentViewController 中的方法时,我的应用程序崩溃了。这是 StoryBoard 中的布局 MainViewController = STLMMainViewCon
我知道这个问题已经被问过好几次了,我确实阅读了关于这个主题的现有帖子,但我仍然需要帮助。 我有 2 个 UIViewControllers - 父项和子项。我使用 presentModalViewCo
一周前我对此有点摸不着头脑,现在有了更多的 Cocoa 经验,我觉得我对可能发生的事情有所了解。 我正在制作一个由 UINavigationController 驱动的应用程序。在 AppDelega
我已经实现了一个 ECSlidingViewController 的子类。 InitialViewController.h @interface InitialViewController : ECS
我有几个模态视图一直工作得“很好”,现在停止返回父 View Controller 并且“代码没有改变”。 -- 经典问题描述。 我调试了 modal view dismissing 和 parent
我有一个 ViewController,它有添加按钮,该按钮将在屏幕右侧打开 SideBarVC。如果我再次点击主 ViewController 屏幕,它应该关闭我的 SideBarVC。 我试过了
这个问题在这里已经有了答案: Passing data between view controllers (45 个答案) 关闭 8 年前。 我有 2 个 View ,ParentViewContr
关闭我的第二个 View Controller 后,我想在我的第一个 View Controller 中调用一个函数。 我现在使用的代码是这样的 firstViewController *fvc =
我不知道如何让 iOS 将事件从 childViewController 向下传递到它的 parentviewcontroller。 我的 childviewcontroller 就像一个覆盖层,它的
我有一个基于页面的应用程序,由每个 ViewController 中的 collectionViews 组成。然后我有一个 viewController 从 pageView 上的 barButton
在我的代码中,我正在执行以下操作: -(void)pushCropImageViewControllerWithDictionary:(NSDictionary *)dictionary { civc
在 ParentViewController 中,我有 [some_vc dismissViewControllerAnimated:YES completion:nil]; View
我正在尝试制作一个应用程序,第一步是创建 viewControllers 并链接它们。我知道我可以使用 Storyboard和 sueges 来做到这一点,但我想用老派的方式来做——通过编码,即 它包
(自问自答,因为我在谷歌上没有找到任何命中,但最终通过反复试验找到了解决方案) 在 iOS 5 和 6 中,Apple 添加了一些丑陋的技巧,使 InterfaceBuilder 支持“嵌入式” Vi
我有这个 Storyboard: 当我在第一个 View Controller (称为 newCourseViewController)中按下“Insegnante”按钮时,它会显示一个带有教师列表的
我是一名优秀的程序员,十分优秀!