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

Ios 按属性或委托方法引用设置UIViewController标题,ios,cocoa-touch,properties,delegates,Ios,Cocoa Touch,Properties,Delegates,我正在制作一个处理类别和产品的应用程序。类别具有子类别,这些子类别可能具有更多子类别或产品。主要类别都有自己的滑出控制器。主类别的所有子类别都显示在其自己的控制器中 对于选定的每个类别(由UITableView中的UITableViewCell表示),都会调用web服务,返回json及其子类别或产品列表。要跟踪这些项目的下载进度,将使用以下方法声明协议: @protocol ItemsRetrievalDelegate <NSObject> @optional - (void)ret

我正在制作一个处理类别产品的应用程序。类别具有子类别,这些子类别可能具有更多子类别或产品。主要类别都有自己的滑出控制器。主类别的所有子类别都显示在其自己的控制器中

对于选定的每个类别(由UITableView中的UITableViewCell表示),都会调用web服务,返回json及其子类别或产品列表。要跟踪这些项目的下载进度,将使用以下方法声明协议:

@protocol ItemsRetrievalDelegate <NSObject>
@optional
- (void)retrievingItems;
- (void)didRetrieveItems:(NSDictionary *)items;
- (void)failedToRetrieveItemsWithError:(NSError *)error;
@end
并在检索子类别或产品时为视图控制器设置父类别标题?请记住,子类别不“知道”其父类别

<> P>这两种解决方案中哪一种你认为最好/更干净?< /P>
谢谢。

最好按照您的建议进行重构。但是,我不明白学员怎么可能还不知道类别。如果代理是导航堆栈底部的vc,它将生成ItemsTrival vc并将其推送,但是ItemsTrival vc如何知道要查询的类别?代理至少在开始时不在导航堆栈底部。子类别的查询由包含父类别的控制器放置。作为检索过程的代理并推送到堆栈上的新控制器不知道父类别是哪一个。如果您在控制器级别上讲话,导航控制器将跟踪其堆栈上的内容。如果在实体设计级别,则表示子级应该知道其父级。但是,子类别或产品的json不包含其父类别的任何字段。您指的是这两个选项中的哪一个?控制器级别,JSON无济于事。是否有一个地方记录了孩子对父视图控制器的感知(不是在容器中,而是在导航控制器序列中)作为最佳实践?我现在不知道这个事实。。。
- (void)retrievingItemsForCategory:(Category *)aCategory;