重新加载 UIViewController 而不返回 UITableView

Posted

技术标签:

【中文标题】重新加载 UIViewController 而不返回 UITableView【英文标题】:Reload UIViewController without going back to UITableView 【发布时间】:2012-07-30 08:06:32 【问题描述】:

我正在开发一款适用于 iPad 的科学游戏,您可以选择一个关卡并显示一些关于科学元素的问题,用户必须选择正确的答案。我使用UITableview 来显示“关卡选择”屏幕,一旦用户选择关卡,didSelectRowAtIndexPath 在“游戏屏幕”上设置一个 int currentLevel。

关卡完成后,我想创建一个UIButton,以便用户无需返回“关卡选择”屏幕(UITableView)即可进入下一个关卡。 本质上我想重新加载视图并设置 int currentLevel 以显示游戏的正确级别

任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

您可以分配您的关卡选择器视图控制器并在当前视图中以模态方式呈现它。

UIViewController *levelPicker = [[UIViewController alloc]init];
[self presentModalViewController:levelPicker animated:YES];
[levelPicker release];

【讨论】:

感谢您的回复,但我不想再次显示关卡选择视图,我只想要一个按钮进入下一个关卡 你为每个级别使用不同的 UIViewController? 效率不高,因为这意味着我必须有 10 个单独的 UIViewController,每个都具有相同的代码。感谢您的建议 不,我只是在问,这不是建议:D。我的建议是创建一个新的视图控制器并在您按下下一级按钮时显示它。然后将 init 方法中的下一级编号传递给新的视图控制器。 我认为您需要根据 currentLevel 变量重新加载完整视图的方法。当按下按钮时,使 currentLevel++ 和 reloadView...

以上是关于重新加载 UIViewController 而不返回 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

如何重新加载 UIViewController 中包含的 tableView?

如何从另一个 UIViewController 重新加载 UITableViewController

通过 AppDelegate applicationWillEnterForeground 从头开始​​重新加载 UIViewController

调用解除方法后如何正确重新加载 UIViewController?

当 UIViewController 被解除时重新加载 TableView?

用tableview重新加载uiviewcontroller的table view subobject的数据