我有一个根在UINavigationController中的UIViewController。我在那里做的是实例化另一个相同类型的UIViewController,设置一些属性并将其推送到堆栈的顶部。
这里的问题是父视图控制器也改变了它的属性。
我是这样做的:
RootViewController *rootViewController = [[RootViewController alloc] initWithRequest:request];
[self.navigationController pushViewController:rootViewController animated:YES];为什么会发生这种情况?这不是在创建视图控制器的新实例并将相同的属性复制到不同的对象实例中吗?
发布于 2012-06-26 22:10:48
两个视图控制器现在都有一个指向同一request对象的指针。所做的任何更改都会反映在两个控制器中。如果控制器能够修改request对象,则可能需要复制该对象。
https://stackoverflow.com/questions/11209193
复制相似问题