0

我有一个视图控制器。我在按钮操作上添加了 popoverviewcontroller 并加载了另一个具有 uitableview 控制器的视图控制器。当我在 tableview 控制器中选择一个值时,我无法将所选值传递给 firstviewcontroller。

该值将作为 null

第二个 ViewController 有 UITableview

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

    [[NSNotificationCenter defaultCenter] postNotificationName:@"RemovePopOverController" object:self];
    selectedValue =   [titleArray objectAtIndex:indexPath.row];

}

第一视图控制器

-(void)removePopOver:(id)sender{

    [self->popoverController dismissPopoverAnimated:YES];

    NSString *value = m_titleViewController.selectedValue; 


  NSLog(@" Value is %@", value);
}

我不想使用 NSUserDefault。请为我提供解决此问题的方法!

提前致谢。

4

3 回答 3

0

您在设置值之前发布通知。尝试这样做:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    selectedValue =   [titleArray objectAtIndex:indexPath.row];
    [[NSNotificationCenter defaultCenter] postNotificationName:@"RemovePopOverController" object:self];
}
于 2012-08-28T10:03:28.273 回答
0

使用委托来满足您的要求,因为在这种情况下使用而不是发布通知是最好的做法。

请参阅simple-delegate-tutorial-for-ios-development链接。希望有帮助。

于 2012-08-28T10:14:14.770 回答
-1

然后你可以使用另一种方法这样:

在 Appdelegate 中创建一个字符串(例如:stringValue)

首先将您的价值保存到您的 Appdelegate 中:

 Appdelegate *appdell=[[UIApplication sharedApplication]delegate];
    appdell.stringValue=@"Your Value Goes Here";

任何时候你都可以得到这个值。

Appdelegate *appdell=[[UIApplication sharedApplication]delegate];

requiredvalue=appdell.stringValue;
于 2012-08-28T10:08:08.783 回答