关闭UIPopOverPresentationcontroller

时间:2016-06-14 03:53:42

标签: ios objective-c iphone uipopovercontroller

我有一个ViewControllerA类,我从中提供了一个显示来自B类的数据的UIPopoverPresentationcontroller,它可以正常工作。当我在pop中选择一个值时,我想解雇它。我的代码如下

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

    NSString *getLang=[self.myArr objectAtIndex:indexPath.row];
    if ([getLang isEqualToString:@"Ragul"]) {
        getLang=@"Received";
    }
    else if ([getLang isEqualToString:@"Gokul"])
    {
    getLang=@"Denied";
    }
    ViewControllerA *viewCont=[[ViewControllerA alloc]init];
    viewCont.delegate=self;
    [self  dismissViewControllerAnimated:YES completion:nil];

    [viewCont anOptionalMethod:getLang];
}

anOptionalMethod是一个自定义委托方法,我调用它来显示从PopOver中选择的值的数据。

-(void)anOptionalMethod:(NSString *)langLocal
 { 
    [self viewDidLoad]; 
    self.popController.delegate = self; 
    [self.ContPop dismissViewControllerAnimated:YES completion:nil];
    self.langShown=YES; 
    lblText.Text=MyValue; 
    [self.view addSubview:lblText]; // This calls viewDidLoad method 
} 

当我使用ViewControllerA将结果添加到[Self.view addSubview:MyValue]时,会调用viewDidLoad方法。所以这不应该发生。我知道popOverPresentationController充当父视图,所以我遇到了这个问题。所以请帮我解决这个问题。 谢谢你提前..

1 个答案:

答案 0 :(得分:7)

以编程方式解除UIPopoverPresentationcontroller

  [[vc presentingViewController] dismissViewControllerAnimated:YES completion:NULL];

希望这有帮助。