2013-02-17 60 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或視圖交換可能是更好的途徑。