我有一个显示旋转木马控件(iCarousel)的视图控制器。 视图呈现正确,并显示轮播。 在此之后,会显示一个模式,允许用户同意某些条款。 我希望一旦他们同意我刷新包含轮播控件的viewcontroller。 基本上,我想将轮播旋转到一些随机索引。

- (IBAction)accept:(id)sender
{
    NewsViewController *newsViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"NewsStoryboard"];

    [newsViewController loadNews];  
    [newsViewController.view setNeedsDisplay]; 



    [self dismissViewControllerAnimated:YES completion:nil];
}

上面的代码确实调用loadNews并获取它,但视图永远不会刷新。

===============>>#1 票数:2 已采纳

旋转木马会发生什么应该由管理它的视图控制器决定,而不是模态视图控制器。 让模态控制器完成它的工作并将它收集的任何数据返回给它的父级。 然后,父(在这种情况下,轮播的控制器)可以查看该数据并确定下一步需要做什么(例如刷新)。

===============>>#2 票数:0

问题是这一行:

    NewsViewController *newsViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"NewsStoryboard"];

那不是旧视图控制器; 它是该视图控制器的一个新的,未使用的副本 您需要创建从模态视图控制器返回到现有视图控制器的通信线。

执行此操作的典型方法是通过委托,您在创建模态视图控制器时设置该委托。 如果你看一下Xcode Utility模板,你会发现它说明了这种架构。 原始视图控制器将其自身设置为模态视图控制器的委托,因此模态视图控制器能够在其被解除时与原始视图控制器对话。

能够做到这一点非常重要我在书中详细讨论了它:

http://www.apeth.com/iOSBook/ch19.html#_presented_view_controller

  ask by john doe translate from so

未解决问题?本站智能推荐:

2回复

在通过委托解除其呈现的模态视图控制器后,刷新UIViewController中的数据

我有代表工作,因为数据正从模态传递到呈现视图控制器。 但是呈现视图控制器没有显示它从模态接收的数据。 我查看了其他帖子,他们说要使用委托/协议方法,但不解释如何/为什么呈现VC刷新。 我假设我的委托设置不正确。 否则,刷新数据的方法是什么? 我已经检查过了,并且没有调用viewWill
1回复

从模态打开的导航控制器显示UIViewController

我想打开从右侧显示的视图控制器,并从视图控制器中适当地打开适当的导航控制器。 就像图像中一样,视图控制器1会以模态方式打开,现在我想使用导航控制器从右侧打开视图控制器2。 可能吗?? 编辑:图像与各自的关卡
1回复

导航控制器中的UIViewController并以模态呈现

我希望这是一个简单的... 我想复制iOS中的“联系人”应用程序中发生的情况。 联系人应用程序使用导航控制器加载联系人的详细信息,很好。 如果您随后编辑联系人,它将更改导航控制器以及屏幕上所有字段的按钮,但仍在导航控制器下运行。 如果您从主联系人列表中创建新联系人,则将以列表上方
1回复

从rootView控制器的子视图控制器将UIViewController呈现为模态视图的问题

我有一个父视图控制器,它是UIWindow的rootViewController。 而且此UIViewController具有两个子视图(添加了视图控制器)。 当我点击右侧子视图控制器中的按钮时,它应该打开一个模式视图。 当我尝试通过从右侧视图使用[self presentModalVie
3回复

如何呈现UIViewController模态显示模糊背景中呈现的控制器?

有一个UIViewController1和UIViewController2我想以模态形式在UIViewController1呈现UIViewController2 。 我可以这样做: 我想做的是呈现UIViewController2 ,使其具有以下大小:100x100,并像弹出窗口一
1回复

将UiViewController添加到根视图控制器

如何将侧栏添加到self.viewcontroller以初始化内容。 self.viewController是RootViewController的
1回复

UINavigation控制器-向后按钮弹出到某个UIViewController

假设我们在UINavigationController的堆栈上有一些UIViewControllers 如何定义后退按钮应该弹出的UIViewController (而不是上一个)? (因此基本上弹出两个或多个而不是一个)也许我想将后退按钮弹出回到根视图控制器,或者只弹出2个视图控制器。
2回复

导航控制器中的UIViewController缺少后退按钮

我有一个带选项卡的表视图控制器,在其中一个选项卡中,我单击一个单元格,该单元会将我带到视图控制器,而不是另一个表视图。 它全部嵌入在UINavigationController中,但是当我按下按钮时,没有得到带有上一个视图控制器名称的后退按钮。 在其他选项卡中,我单击一个单元格,然后
1回复

为在UIViewController中找到的UIView创建控制器

在iOS世界中,我们都习惯了以下模式: 一个ViewController显然是一个控制view的控制器,它包含许多subviews 。 现在,我有很多要重用的subviews ,并且希望通过更多功能来丰富它们。 考虑对模型中的某些事件或某些更改做出反应的UISlider , UI
1回复

UINavigationController和UIViewController的导航控制器属性

我最近遇到过这种情况,我想知道为什么这样设计。 如果你的UINavigationController的子容器视图中有一个嵌入式视图控制器的子容器,为什么这个子的self.navigationController属性不能设置为什么? 来自Apple Doc的主题: 视图控制器