如何使 ChildViewController 在相同的按钮操作上出现和消失

Posted

技术标签:

【中文标题】如何使 ChildViewController 在相同的按钮操作上出现和消失【英文标题】:How to make ChildViewController appear and disappear on same button action 【发布时间】:2016-03-09 12:36:25 【问题描述】:

我正在使用 childView 控制器通过按钮在导航栏上显示一组选项/种类,当我单击按钮时,子视图出现并且在同一个按钮上单击我想删除子视图。请帮助提前谢谢。

这里是代码

UIViewController * topViewController = navigationControllerGlobal.topViewController; 
childViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]instantiateViewControllerWithIdentifier:@"childViewStoryboardId"];
self.myParentViewController = topViewController;
[topViewController addChildViewController:childViewController] childViewController.view.frame= self.myParentViewController.view.frame ; 
[topViewController.view addSubview:childViewController.view]; 
[childViewController didMoveToParentViewController:topViewController];

【问题讨论】:

你是如何添加childViewController的,你能提供相同的代码吗? 您可以为子视图设置一个布尔变量。管理隐藏和显示视图的布尔值。 'UIViewController * topViewController = navigationControllerGlobal.topViewController; childViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"childViewStoryboardId"]; self.myParentViewController = topViewController; [topViewController addChildViewController:childViewController]; childViewController.view.frame=self.myParentViewController.view.frame; [topViewController.view addSubview:childViewController.view]; [childViewController didMoveToParentViewController:topViewController];' @BharatModi 没有遇到您的问题,请在您的答案中添加上述代码。 你的问题不清楚,我从中理解的是你想在点击按钮时显示一个 ViewController,同时你还想通过点击同一个按钮来关闭那个 ViewController,我说的对吗? 【参考方案1】:

这是答案,伙计们,

[[NSNotificationCenter defaultCenter] postNotificationName:@"removeChildNotify" object:navigationControllerGlobal.topViewController]

【讨论】:

以上是关于如何使 ChildViewController 在相同的按钮操作上出现和消失的主要内容,如果未能解决你的问题,请参考以下文章

如何在全屏 ChildViewController 上显示 UIPageControl?

XLPagerTabStrip 中的可编辑 TableView 作为 childViewController

两个 childViewController 之间的通信

自动将事件从 ChildViewController 传递到 parentViewController

UIPageViewController 在 childViewController 中具有动态内容

导航栏未显示在 childViewController 内