-1

我昨天开始 iOS 开发并尝试设置 2 个切换视图。在教程的帮助下,这并不是真正的问题。然后我想:让我们做第三个视图。一切都很好,但是当我尝试从第三个切换回第二个时,它切换到 1。当我尝试使用 [self presentModalViewController...] 时,它向前切换到我在那里写的视图,但不向后切换。并且随着 [self dismiss...] 它一直切换到第一个视图。是否有可能在我想要的任何地方进行此切换?3 比 2、2 比 1、3 比 1 等。

问候

4

4 回答 4

1

当您说切换视图时,您指的是视图控制器。可以有多种方式在控制器之间切换。

首先也是最重要的一个是推送到新的视图控制器。这只有在当前视图控制器上持有导航控制器时才能实现。导航控制器是允许您在视图控制器之间导航的控制器。当您使用“pushViewController”方法导航到新控制器时,您需要使用“导航控制器的 popviewcontroller 方法”返回到前一个控制器。这使您可以弹回上一个屏幕/控制器。

但是,每当您推送到新控制器时,这意味着您正在将一个控制器添加/插入到堆栈中,并且您知道堆栈是 LIFO,最后一个必须首先从堆栈中取出,然后只有您可以获得其他元素堆栈。

因此,例如:如果您有 3 个控制器 A、B 和 C。您从 A 开始并推送到 B,然后从 B 进一步推送到 C。然后堆栈将具有 CBA(C 将在顶部,A 将位于底部)。因此,您必须先弹出 C 再弹出 B 等。

移动到新控制器的其他方法是:presentModalViewController 呈现屏幕/控制器,可以使用dismissmodalviewcontroller 方法将其删除。

希望这可以帮助。

于 2013-02-17T09:47:03.483 回答
0

您可以使用一个 viewContoller 并在不同的视图之间切换,例如:

[view1 removeFromSuperview];
[myRootView addSubview: view2];
于 2013-02-17T09:36:09.167 回答
0

当您呈现模态视图控制器时,您需要在继续之前将其关闭。特别是你不能模态呈现视图控制器 1,然后模态呈现视图控制器 2,然后模态呈现视图控制器 1。

至少您必须关闭模态视图控制器 2 - 然后 1 应该仍然存在。

根据这些控制器的性质,UINavigationController 或视图交换可能是更好的选择。

于 2013-02-17T14:29:22.300 回答
0

为了继续前进,您可以使用 UINavigation 控制器,如下所示:

FirstViewController *firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:[NSBundle mainBundle]]; 

  [self.navigationController pushViewController:firstViewController animated:YES];
  [firstViewController release];

myViewController 是您的视图控制器的对象。& 对于一个视图返回仅使用以下行:

[self.navigationController popViewControllerAnimated:YES];
于 2013-02-17T09:04:07.307 回答