0

我有一个UIViewController在 a 中的那个根UINavigationController。我在那里做的是实例化另一个UIViewController相同类型的,设置一些属性并将其推到堆栈顶部。

这里的问题是父视图控制器也在改变它的属性。

这是我的做法:

RootViewController *rootViewController = [[RootViewController alloc] initWithRequest:request];
[self.navigationController pushViewController:rootViewController animated:YES];

为什么会这样?这不是创建视图控制器的新实例并将相同的确切属性复制到不同的对象实例中吗?

4

1 回答 1

1

两个视图控制器现在都有一个指向同一个request对象的指针。您所做的任何更改都会反映在两个控制器中。request如果控制器能够修改它,您可能需要复制该对象。

于 2012-06-26T14:10:48.027 回答