2013-03-06 65 views
0

我是相當新的xcode,並創建一個具有五個視圖(xib文件)的單個視圖應用程序。出於兩個原因,我沒有使用導航控制器或故事板。 如果我使用Storyboard,我不得不讓我的其他視圖成爲UIView文件。這些不具有返回第一個視圖後,我在Xcode中的iOS應用程序的第五個視圖

-(void)viewDidLoad 

防止我在我的應用程序加載了幾個定時器我有。

我能夠從第一頁導航到第二頁等,一直到第五頁/視圖使用以下代碼。

-(IBAction)pagethree { 
    countdown=[[Countdown alloc] initWithNibName:@"Countdown" bundle:nil]; 
    [self.view addSubview:countdown.view]; 
} 

但是,當我想從第五個視圖回到第一個頁面時,我遇到了一個問題。 我的第一個視圖叫做ViewController。如果我嘗試從上面的代碼,我的應用程序充滿了錯誤。

我也使用

-(IBAction)back { 
    [self.view removeFromSuperview]; 
} 

嘗試,但只有把我帶回到一個視圖。

我的第五個視圖控制器被稱爲統計,第一個被稱爲ViewController。 我可以編碼從最後一個視圖返回到第一個視圖?

感謝

+0

嘿HITEN,我會挑釁建議使用故事板,您可以創建塞格斯,並從視圖控制器沒有代碼,故事板元件分別鏈接到一個新的UIViewController,總是要麼調用viewDidLoad中,或者撥打viewWillAppear中或ViewDidAppear其工作就像把計時器等放進去一樣......如果你想讓我發佈一些關於故事板的更多資源,請告訴我,但marianos的回答是正確的,導航控制器非常強大。祝你好運,T – 2013-03-06 21:00:27

+0

泰勒,謝謝你的建議。我正在用故事板重新編寫程序,並會在發生任何問題時通知您! – 2013-03-21 18:29:55

回答

1

首先,要回答你的問題,你需要爲每個addSubview做removeFromSuperview(或類似):你沒有。每次添加子視圖時,都會將新屏幕放在最後一個屏幕的頂部,就像堆棧一樣。當你到達你的第五個視圖時,你有4個其他視圖「後面」。 (實際上,這不是addSubview的功能,但我只是在特定情況下描述效果)。

但我認爲你做錯了...你應該閱讀更多關於故事板和導航控制器。兩者都與UIViewController一起使用,並且支持開箱即用的手工操作。例如,使用導航控制器,可以執行一個新的視圖控制器:

[navigationController pushViewController:viewController animated:YES]; 

您可以根據需要多次執行此操作。然後,回去一次,你這樣做:

[navigationController popViewControllerAnimated:YES]; 

,並直接回到第一個:

[navigationController popToRootViewControllerAnimated:YES]; 

希望這有助於。

相關問題