我有一个子视图控制器,由放置在故事板不同位置的两个视图控制器调用。在这个孩子中有一个关闭实际视图的按钮,我想分配一个IBAction或一个Segue来将此视图与真正的父视图控制器连接。
也许我错了,但可以用Unwind Segue做到这一点?这是我第一次使用这些,有人可以帮助我吗?
非常感谢!和平
我有一个子视图控制器,由放置在故事板不同位置的两个视图控制器调用。在这个孩子中有一个关闭实际视图的按钮,我想分配一个IBAction或一个Segue来将此视图与真正的父视图控制器连接。
也许我错了,但可以用Unwind Segue做到这一点?这是我第一次使用这些,有人可以帮助我吗?
非常感谢!和平
父母和孩子之间是什么关系?它是推送到导航控制器上还是呈现(模态)?然后你可以在以下情况下使用UINavigationController
- (UIViewController *)popViewControllerAnimated:(BOOL)animated; // Returns the popped controller.
或者在呈现(模态)视图控制器的情况下
- (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^)(void))completion NS_AVAILABLE_IOS(5_0);
当然,您也可以使用展开转场,请查看本教程。
无论您使用什么 viewController,您都可以通过调用访问其父级:
// < iOS 5
[myViewController parentViewController]
// >= iOS 5
[myViewController presentingViewController]
得到它后,你只需要检查它是哪一个:
if ([[myViewController presentingViewController] isKindOfClass:[myParentClassA class]])
{
// do anything
}
可以在两个父视图控制器中创建具有相同名称的展开方法:
- (IBAction)unwindToThisViewController:(UIStoryboardSegue *)segue {
}
展开机制会自动遍历响应者链并找到正确的父视图控制器