【问题标题】:Return for the first view after I'm on the fifth view of an iOS application in Xcode在 Xcode 中的 iOS 应用程序的第五个视图之后返回第一个视图
【发布时间】:2013-03-06 20:20:21
【问题描述】:

我是 xcode 的新手,正在创建一个具有五个视图(xib 文件)的单视图应用程序。我没有使用导航控制器或情节提要有两个原因。 如果我使用 Storyboard,我不得不让我的其他视图成为 UIView 文件。这些没有

-(void)viewDidLoad 

这使我无法加载我的应用程序中的几个计时器。

我可以使用以下代码从第一页导航到第二页,以此类推,一直到第五页/视图。

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

但是,当我想从第五个视图返回到第一页时,我遇到了问题。 我的第一个视图称为 ViewController。如果我尝试上面的代码,我的应用程序充满了错误。

我也尝试过使用

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

但这只让我回到了一个视图。

我的第五个视图控制器叫做 Statistics,第一个叫做 ViewController。 我可以编写什么代码来从最后一个视图返回到第一个视图?

谢谢

【问题讨论】:

  • 嘿,hiten,我强烈建议使用故事板,您可以在没有代码的情况下创建与视图控制器之间的转场,每个故事板元素都链接到一个新的 uiviewcontroller,并且总是调用 viewDidLoad,或者调用viewWillAppear 或 ViewDidAppear 可以很好地放入计时器等...如果您希望我发布更多有关故事板等的资源,请告诉我,但 marianos 的回答是正确的,导航控制器非常强大。祝你好运,T
  • 泰勒,谢谢你的建议。我正在使用情节提要重新编写程序,如果遇到任何问题,我会通知您!

标签: xcode view switch-statement viewcontroller uiswitch


【解决方案1】:

首先,要回答您的问题,您需要为您所做的每个 addSubview: 执行一次 removeFromSuperview(或类似操作)。每次您执行 addSubview 时,您都将新屏幕放在最后一个屏幕的“顶部”,就像一个堆栈。当您到达第 5 个视图时,“后面”还有 4 个其他视图。 (实际上,这并不是 addSubview 所做的,但我只是在描述您的特定情况下的效果)。

但我认为你做错了......你应该阅读更多关于故事板和导航控制器的信息。两者都与 UIViewController 一起使用,并且开箱即用地支持您尝试手动执行的操作。例如,使用导航控制器来推送新的视图控制器,您可以这样做:

[navigationController pushViewController:viewController animated:YES];

您可以根据需要多次执行此操作。然后,要返回一次,您可以:

[navigationController popViewControllerAnimated:YES];

直接回到第一个:

[navigationController popToRootViewControllerAnimated:YES];

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多