如何解决目标C:如何为导航控制器重构代码
| 我有一个使用UITabBarController
的应用程序,其中包含4个不同的导航控制器。例如,
1)\“ Feed \”视图导航控制器
2)“最受欢迎”视图导航控制器
3)“新闻”视图导航控制器
4)“更多”视图导航控制器
对于每个导航控制器,可能需要将一些通用的视图控制器推入其现有堆栈中。例如,如果我单击同时显示在\'Feed \'和\'News \'视图控制器中的用户配置文件图片,则他们应将userProfile视图控制器推入其堆栈。
目前,我看到自己在不同的导航控制器之间重复这样的代码:
UserProfileViewController *user = [[UserProfileViewController alloc]init];
user.propertyA = XXX;
user.propertyB = YYY;
[self.navigationController pushViewController:user animated:YES];
恐怕这将变得过于重复和混乱,尤其是当您有多个导航控制器时。
我的问题将是如何重构代码,以便所有导航控制器在每次需要加载公共视图控制器时都无需重复代码。
提前致谢
解决方法
在UserProfileViewController上创建一个静态选择器,如下所示:
@interface UserProfileViewController {
...
}
+ (void)pushNewUserProfileViewControllerWithPropertyA:(id)pa
propertyB:(id)pb
ontoNavigationController:(UINavigationController*)nav;
@end
并在其实现中放入问题中的那四行代码,但请确保自动释放创建的UserProfileViewController。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。