在海报 NSNotificationCenter 解决方法后添加观察者?
Adding observer after poster NSNotificationCenter workaround?
是否可以将委托或 NSNotificationCenter 观察器分配给在 VC1 之后加载的 VC2,其中 post 发生?
我有一个包含多个 VC 的标签栏应用。 VC 1 首先加载,触发 post 的操作发生在 VC2 加载之前。在 VC2 中,我需要从 VC1 复制或获取数组的引用。
还有其他方法吗?请帮忙!我已经在这里待了 4 个小时了。谢谢
如果您创建一种引用所有 VC 的 NavigationController,然后使用 addSubview
和 removeFromSuperview
切换它们,可能会更好
试试这个可能对你有帮助。
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];
}
}
}
是否可以将委托或 NSNotificationCenter 观察器分配给在 VC1 之后加载的 VC2,其中 post 发生?
我有一个包含多个 VC 的标签栏应用。 VC 1 首先加载,触发 post 的操作发生在 VC2 加载之前。在 VC2 中,我需要从 VC1 复制或获取数组的引用。
还有其他方法吗?请帮忙!我已经在这里待了 4 个小时了。谢谢
如果您创建一种引用所有 VC 的 NavigationController,然后使用 addSubview
和 removeFromSuperview
试试这个可能对你有帮助。
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];
}
}
}