2013-03-06 61 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]; 

希望这有助于。

相关问题