gpt4 book ai didi

ios - Storyboard - 回合制游戏的工作流程

转载 作者:可可西里 更新时间:2023-11-01 05:54:37 24 4
gpt4 key购买 nike

我正在创建一款回合制游戏,想知道我的工作流程的正确流程。目前我有以下内容:

主视图 Controller (它有一个 UITableView)
单击第 1 部分的行 > 加载路径为 1 的 UINavigationController
单击第 2 部分中的行 > 使用路径 2 加载 UINavigationController

举个例子:
路径 1 - 轮到你了
路径 2 - 猜猜轮到你了

每条路径都有大约 4-5 个 UIViewControllers 加载到导航 Controller 中。

现在我所处的阶段是,一旦路径 2 完成,用户也应该轮到他们玩(即先走路径 2,然后走路径 1)。

完成这个的正确方法是什么?我应该从路径 2 中的最后一个 Controller 创建一个 segue > 通向路径 1。问题是路径 2 有一个 UIViewController,它有一个 UIImageView,其中有一个大图像它会在内存中徘徊。理想情况下,在用户开始路径 1 之前(路径 2 完成后),它会被清除

最佳答案

我已经尝试过 popToRootViewControllerAnimated 但当我们想要 movetopath2 时它不起作用。我们可以在 NSUserDefaults 中存储一些检查点,然后相应地进行 segue 但这种方法在这种情况下不起作用。

[self.navigationController popToRootViewControllerAnimated:YES];

最后我找到了如下解决方案:
从下面的工作代码开始,并根据您的应用逻辑进行更改
Your Work Flow

ViewController.m文件

 #pragma mark - UITableViewDelegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

if (indexPath.section == 0)
{

UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];

PathOneViewController *pathController = [mainStoryBoard instantiateViewControllerWithIdentifier:@"PathOneViewController"];

[self.navigationController pushViewController:pathController animated:YES];

}
else
{
UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];

PathTwoViewController *pathController = [mainStoryBoard instantiateViewControllerWithIdentifier:@"PathTwoViewController"];

[self.navigationController pushViewController:pathController animated:YES];

}
}

PathOneDetailViewController.m 文件

 - (IBAction)actionMoveToPathTwo:(id)sender { // Move to path two

AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate];

UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"PathTwoViewController"];

UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController];
appDelegateTemp.window.rootViewController = navigation;
}

- (IBAction)actionMoveToHome:(id)sender { // Move to table View

AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate];

UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"ViewController"];

UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController];
appDelegateTemp.window.rootViewController = navigation;
}

PathTwoDetailViewController.m 文件

- (IBAction)actionMoveToHome:(id)sender { // Move to table View


AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate];

UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"ViewController"];

UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController];
appDelegateTemp.window.rootViewController = navigation;


}

- (IBAction)actionMoveToPath1:(id)sender { // Move to path one


AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate];

UIViewController* rootController = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"PathOneViewController"];

UINavigationController* navigation = [[UINavigationController alloc] initWithRootViewController:rootController];
appDelegateTemp.window.rootViewController = navigation;

}

关于ios - Storyboard - 回合制游戏的工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21443803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com