gpt4 book ai didi

ios - 在 Objective C 中调用同一个 View "N"次

转载 作者:行者123 更新时间:2023-11-29 02:50:58 24 4
gpt4 key购买 nike

希望您能就我的问题给我一些建议: 我有一个与类关联的 View Controller 。 我正在尝试使用相同的 View Controller 来显示不同的信息..“n”次 我的 View 包含:imageview和表格(表格中将显示结果) 为什么一样? ---> 因为结构相同:名称和图像

例子: 1--子类别:衣服、鞋子 2-- 如果您选择“衣服”,则显示:连衣裙、牛仔裤、衬衫。 3--如果选择“连衣裙”则显示:晚礼服、短裙等 我不知道它什么时候停止,因为这取决于所选的子类别是否有更多元素要显示。 我控制它,当 View 没有要显示的元素时,我发送其他 View ,这不是我的问题。

哪个问题? -- 问题是我正在调用相同的 View ,并且我的数组保留了收到的最后一个值, 如果我想返回(因为我使用导航 Controller ),我无法选择其他值。

基于前面的示例: - 我选择了“衣服”(有 3 个结果) - 现在我要回去了,我想要精选的“鞋子” 出现: '* 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“-[__NSCFArray objectAtIndex:]:索引 (1) 超出界限 (1)”en 入门

发生这种情况是因为我的最后一个数组有 3 个项目,而我按下的单元格有 2 个项目。

// ---------MY CODE IS:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *cat, *nom;
cat = AId[indexPath.row];
nom = ACateg[indexPath.row];
[self wsCategorias: @"0" dato2: cat];

if(existe == FALSE ){
[NSThread detachNewThreadSelector:@selector(cargando:) toTarget:self withObject:nil];
// ------ my process
}
else {
/************************************** CALLING THE SAME VIEW ****************/

Subcategoria1 *sub = [self.storyboard instantiateViewControllerWithIdentifier:@"Sub1"];
sub.idCat = cat;
sub.nomCat = nom;

[self.navigationController pushViewController:sub animated:YES];
}
}

如何使用相同的 View 但每个 View 都保持正确的值?必须创建新 View 吗?

最佳答案

因此,您要做的是推送和弹出 View Controller ,它们看起来相同,但包含不同的数据和其中包含不同值的数组。

根据您设置 View Controller 的方式,您需要做的是在每次要推送到新部分时实例化一个新 Controller 。

  • 如果您使用的是 Storyboard,您可以为 View Controller 提供一个标识符并以编程方式实例化它。
  • 如果您使用的是 NIB,则可以从 NIB 初始化 Controller 。
  • 如果您以编程方式实例化您的 Controller ,那么只需编写代码来分配/初始化它,您将拥有一个新的 Controller 。

无论由谁实例化您的 View Controller ,您都希望为您选择的每个子类别创建一个新的。

例如,假设您要从显示的主列表开始

  • 牛仔裤
  • 连衣裙
  • 鞋子
  • 配件

然后您选择 Jeans 并希望显示其子项,这些子项可能是:

  • 成人牛仔裤
  • child 牛仔裤

您要做的是实例化一个新的 View Controller ,传入子项数组数据(在本例中包含“Adult Jeans”和“Kids Jeans”),然后将其推送到您的导航堆栈中。这样,当您点击后退按钮时,iOS 会自动返回到您所在的位置,您可以根据需要无限次地重复使用相同的 View Controller 和 UI。

关于ios - 在 Objective C 中调用同一个 View "N"次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24537752/

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