我有一个视图控制器。我在按钮操作上添加了popoverviewcontroller并加载了另一个具有uitableview控制器的viewcontroller。当我在tableview控制器中选择一个值时,我无法将所选值传递给firstviewcontroller。
该值为空
第二个ViewController有UITableview
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[[NSNotificationCenter defaultCenter] postNotificationName:@"RemovePopOverController" object:self];
selectedValue = [titleArray objectAtIndex:indexPath.row];
}
firstviewController
-(void)removePopOver:(id)sender{
[self->popoverController dismissPopoverAnimated:YES];
NSString *value = m_titleViewController.selectedValue;
NSLog(@" Value is %@", value);
}
我不想使用NSUserDefault。请告诉我这个问题的解决方案!
提前致谢。
答案 0 :(得分:0)
您在设置值之前发布通知。尝试这样做:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
selectedValue = [titleArray objectAtIndex:indexPath.row];
[[NSNotificationCenter defaultCenter] postNotificationName:@"RemovePopOverController" object:self];
}
答案 1 :(得分:0)
使用委托作为您的要求,因为最好在这种情况下使用,而不是发布通知。
参考simple-delegate-tutorial-for-ios-development链接。希望对你有所帮助。
答案 2 :(得分:-1)
然后你可以使用像This:
这样的另一种方法在Appdelegate中创建一个String(例如:stringValue)
首先将您的价值保存到您的Appdelegate中:
Appdelegate *appdell=[[UIApplication sharedApplication]delegate];
appdell.stringValue=@"Your Value Goes Here";
当你想要的时候你可以得到这个价值。
Appdelegate *appdell=[[UIApplication sharedApplication]delegate];
requiredvalue=appdell.stringValue;