按属性或委托方法引用设置UIViewController标题

时间:2014-07-02 09:18:00

标签: ios cocoa-touch properties delegates

我正在创建一个处理类别产品的应用。类别具有可以具有其他子类别或产品的子类别。主要类别有自己的滑出控制器。主类别的所有子类别都显示在它们自己的控制器中。

对于所选的每个类别(由 UITableView 中的 UITableViewCell 表示),将调用Web服务,该服务返回带有子类别列表的json。或产品。要跟踪这些项的下载进度,请使用以下方法声明协议:

@protocol ItemsRetrievalDelegate <NSObject>
@optional
- (void)retrievingItems;
- (void)didRetrieveItems:(NSDictionary *)items;
- (void)failedToRetrieveItemsWithError:(NSError *)error;
@end

每个呈现子类别或产品的视图控制器都实现此协议。

对于每组子类别,我需要显示以父类别的名称命名的标题。为此,我已经声明了一个名为parentCategory的属性。现在,对于每个类别的选择,我可以为下一个视图控制器标题设置此属性。

但从设计的角度来看,这个解决方案是理想的解决方案吗?将协议的retrievingItems方法重构为:

会更好吗?
- (void)retrievingItemsForCategory:(Category *)aCategory;

并在检索子类别或产品期间设置视图控制器的父类别标题?请记住,子类别不是&#34;意识到&#34;它的父母。

您认为哪两个解决方案最好/更清洁?

感谢。

0 个答案:

没有答案