将变量添加到所有UIViewControllers
我有这个类(我们称之为
FooViewController
),它是UIViewController
的子类。它应该与UINavigationController
类似,因为它有一个rootController
,你可以添加其他UIViewController
s。并且每个UIViewController
在FooViewController
内可以创建另一个UIViewController
并将新的UIViewController
推到FooViewController
。
这是我的意思的一个例子。当您向项目添加新的UITableViewController
时,这是自动创建的代码。
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"Nib name" bundle:nil];
// ...
// Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
这是一个问题:我怎么能在所有UIViewController
s中都有像navigationController
这样的变量?就像您可以使用类别向现有类添加方法一样,您是否也可以向现有类添加变量?听起来像联想参考是我正在寻找的,但它只能在Mac上使用。
对我有用的一个解决方案是子类化我可能使用的所有UIViewController
s,并让我的实际类子类从那些子类中删除。例如,我可能会这样做:
@interface FooUIViewController : UIViewController {
FooViewController *fooViewController;
}
@interface FooUITableViewController : UITableViewController {
FooViewController *fooViewController;
}
所以我能做到:[self.fooViewController pushViewController:detailViewController];
。但这似乎是一种肮脏的方式。
我觉得这不应该是一件困难的事情,也许我认为这是错误的。有什么想法吗?谢谢!
没有找到相关结果
已邀请:
1 个回复
薄扩络拜