解雇uipopover时如何获取属性值

时间:2013-11-16 20:45:06

标签: ios properties uipopover

当我在主视图控制器上输入文本字段时,我正在使用uipopover向用户显示迷你数字键盘。 当他们使用数字键盘输入数字时,我将该条目保存到我已命名为keypadvalue的nsstring属性中。 有一个unwind segue连接到popover上的一个完成按钮,它会触发以下代码。

- (IBAction)doneWithKeyboard:(UIStoryboardSegue *)segue
{
    NSLog(@"unwind");

    if ([segue.sourceViewController isKindOfClass:[KeyPopupViewController class]])
        {
           KeyPopupViewController *popOver2 = segue.sourceViewController;

            activeField.text =popOver2.keypadValue;
        }
}

我的主视图控制器上的activetextfield然后更新到kepadvalue,这一切都正常。

我现在的问题是,如果用户在uipopover外部按下,我希望activetextfield以相同的方式更新,并且在不触发unwind segue的情况下解除它。

我认为当popover解散时我可能会使用以下内容来执行更新

-(BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
    activeField.text = controller.keypadValue;
    return YES;
}

遗憾的是,尽管有多次尝试,但我无法让属性返回一个值,即使方法按预期方式触发,它也始终为null。

我应该如何使用此方法或其他方法从弹出框中恢复属性值? 我显然做错了什么 任何人都可以建议

感谢

1 个答案:

答案 0 :(得分:0)

应该有所帮助:

-(BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
    [self.view endEditing:YES];
    activeField.text = controller.keypadValue;
    return YES;
}