我有一个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
充当父视图,所以我遇到了这个问题。所以请帮我解决这个问题。
谢谢你提前..
答案 0 :(得分:7)
以编程方式解除UIPopoverPresentationcontroller
,
[[vc presentingViewController] dismissViewControllerAnimated:YES completion:NULL];
希望这有帮助。