目标C中的任何事情都让我一次又一次地疯狂。 (如果我有任何错误的话,请原谅我)
(使用Arc)
使用ddmenucontroller我加载2个菜单,类似于Facebook App;左控制器和右控制器
在RightController.h中,我拉了一个httprequest并加载了一个朋友列表。 从LeftController.h和m加载,我有一个添加好友视图控制器。
当从AddFriendsViewController.h和m添加朋友时,我需要通过调用 - (void)getFriends
来更新RightController中的朋友列表我已经尝试过通知,我已经尝试过设置共享实例,似乎没有什么对我有用:(我从大多数示例中看到的最大问题是我仍然需要在RightController中的viewDidLoad上调用getFriends。我和每次改变时,它都会在加载RightController时崩溃
请让我知道任何人希望看到的代码;我删除了我尝试的所有内容,因为它无法正常工作......
答案 0 :(得分:1)
您需要从视图和视图控制器(想想MVC)中抽象出下载和数据存储。也许有一个单身人士来管理你的所有数据。现在,任何视图控制器都可以触发新的下载,任何视图控制器都可以观察到新数据如果您的单身人士获得新数据,请发布通知。在视图控制器中,在显示时添加为观察者,并在隐藏时删除。视图控制器还可以通过显式调用单例来随时检查新数据。
您的单身人士界面可能类似于:
#define MY_NEW_DATA_NOTIFICATION @"MY_NEW_DATA_NOTIFICATION"
@interface MyDataController : NSObject
@property (strong, nonatomic, readonly) NSArray *downloads;
+ (MyDataController *)sharedController;
- (void)startDownload;
@end
答案 1 :(得分:0)
Wain:你的回答让我走上正轨
RightController.h
@interface RightController : UIViewController
{
NSMutableArray *offerArray;
NSArray *find_list;
UITableView *myTableView;
NSMutableArray *dataSource;
NSMutableArray *tableData;
NSMutableArray *addrData;
}
+ (RightController *)sharedController;
-(void) getFriends;
@end
RightController.m
- (id)init {
if ((self = [super init])) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getFriends) name:@"rightControllerGetFriends" object:nil];
}
return self;
}
和AddFriendsViewController.m
- (IBAction) TellAFriendPressed:(id)sender
{
...
[[NSNotificationCenter defaultCenter] postNotificationName:@"rightControllerGetFriends"
object:nil];
}
感谢您的帮助!
答案 2 :(得分:0)
您是否尝试过使用KVO?这就是为它创造的东西。