2013-02-17 75 views
-1

我昨天开始iOS开发并试图设置2个切换视图。这在教程的帮助下并不是真正的问题。然后我想:让我们来看第三种观点。一切顺利,但当我试图从第三切换回第二切换到1. 当我试图使用[自我presentModalViewController ...]它切换到我写在那里,但没有倒退的意见。并且[自我解雇...]它总是切换到第一个视图。有没有可能让这个开关在我想要的地方? 3比2,2比1,3比1等iOS切换视图1查看回到

问候

回答

0

为了前进,你可以使用UINavigation控制器象下面这样:

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

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

myViewController是您的视图 - 控制的对象。 &一个视图回仅使用下面一行:

[self.navigationController popViewControllerAnimated:YES]; 
0

你能有一个viewContoller工作,喜欢不同视图之间切换:

[view1 removeFromSuperview]; 
[myRootView addSubview: view2]; 
1

当你说你切换指的视图控制器的看法。可以有很多方法在控制器之间切换。

首先是推到新的视图控制器。只有当前视图控制器上有一个导航控制器时才能实现。导航控制器是让您在视图控制器之间导航的控制器。当使用'pushViewController'方法导航到新控制器时,则需要使用'导航控制器的popviewcontroller方法'返回到前一个控制器。这允许您弹出回到前一个屏幕/控制器。

然而,无论何时你推到一个新的控制器,这意味着,你正在向堆栈中添加/插入一个控制器,并且如你所知堆栈是LIFO,最后一个必须首先脱离堆栈,然后只有你可以获取堆栈的其他元素。例如:如果你有3个控制器A,B和C.你从A开始并推到B,然后再从B推到C,那么堆栈将有CBA(C将开启顶部和A将在底部)。所以你必须首先弹出C然后B弹出。

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

希望这会有所帮助。

+1

该用户需要查看的好解释 - UINavigationController实现。 – noobzilla 2013-02-17 12:22:03

+0

谢谢@noobzilla +1 :) – 2013-02-17 13:31:48

0

当您呈现模态视图控制器时,您需要在继续之前解除它。特别是你不能模态地呈现视图控制器1,然后模态地呈现视图控制器2,然后模态呈现视图控制器1.

至少你必须关闭模式视图控制器2 - 那么1仍然应该在那里。

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