是否可以将代理或NSNotificationCenter观察者分配给在VC1之后加载的VC2,哪里发生了发布?在海报NSNotificationCenter解决方法之后添加观察者?
我有一个带有多个VC的tabbar应用程序。 VC 1首先被加载,并且在加载VC2之前触发一个帖子的动作发生。在VC2中,我需要复制或从VC1获取数组的引用。
有没有其他方法可以做到这一点?请帮忙!我已经在这4个小时了。由于
是否可以将代理或NSNotificationCenter观察者分配给在VC1之后加载的VC2,哪里发生了发布?在海报NSNotificationCenter解决方法之后添加观察者?
我有一个带有多个VC的tabbar应用程序。 VC 1首先被加载,并且在加载VC2之前触发一个帖子的动作发生。在VC2中,我需要复制或从VC1获取数组的引用。
有没有其他方法可以做到这一点?请帮忙!我已经在这4个小时了。由于
切换他们试试这个,它可以帮助你也许是更好的。
FirstViewController
-(void)viewDidAppear:(BOOL)animated
{
NSArray *temp=[NSArray arrayWithObjects:@"1",@"2", nil];
[[NSNotificationCenter defaultCenter] postNotificationName:@"postArrayObject" object:temp];
}
SecondViewController
-(void)viewWillAppear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(objFirstViewController:) name:nil object:nil];
}
-(void)objFirstViewController:(NSNotification *)notification
{
if ([[notification name]isEqualToString:@"postArrayObject"])
{
NSArray *cellData = [notification object];
if (cellData)
{
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"WORKING"
message:nil
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[message show];
}
}
}
OH!有趣的。我甚至没有考虑生命周期方法!谢谢 – 2015-02-09 08:34:04
,如果你创造一种NavigationController的是拥有所有VC的参考,然后用addSubview
和removeFromSuperview
你的意思是VC2自身添加作为观察员通知其已经发布?通知帖子什么时候发布? vc2什么时候添加为观察者? – KudoCC 2015-02-09 08:17:48
是的!首先装入VC 1,然后调用VC内部的SelectSelect。那么VC2加载并添加为观察者;基本上这个帖子是在VC1的didSelect方法内完成的。 – 2015-02-09 08:21:02
为什么不将VC2作为观察者添加到其init方法中? 'viewDidLoad'方法只在第一次访问'UIViewController'的视图属性时被调用。 – KudoCC 2015-02-09 08:27:45