2016-06-14 11 views
1

Ich habe Klasse ViewControllerA, von dem ich eine UIPopoverPresentationcontroller präsentieren, die Daten von Klasse B anzeigen, was gut funktioniert. Wenn ich einen Wert in pop Over wähle, möchte ich ihn schließen. Mein Code ist wie untenDismiss UIPopOverPresentationcontroller

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

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

    [viewCont anOptionalMethod:getLang]; 
} 

anOptionalMethod ein Verfahren benutzerdefinierten Delegaten ist die i-Daten mit dem Wert von popover ausgewählt zeigen rufen.

-(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 
} 

Wenn ich das Ergebnis an die ViewControllerA mit [Self.view addSubview:MyValue] fügen die viewDidLoad Methode aufgerufen wird. Das sollte also nicht passieren. Ich weiß, dass popOverPresentationController als übergeordnete Ansicht fungiert und so bekomme ich dieses Problem. Also bitte hilf mir das zu lösen. ThankYou im Voraus ..

+0

versuchen Sie, 'anOptionalMethod delegate' aufzurufen, bevor Sie die' view controller' ... ablehnen und eine 'anOptionalMethod' Methode anzeigen, um zu löschen, wie Sie' MyValue' an 'ViewControllerA' übergeben .. – Simmy

+0

- (void) anOptionalMethod: (NSString *) langLocal { [self.popOverController disneyViewControllerAnimated: JA abgeschlossen: nil]; self.langShow = YES; [Selbst]; } –

+0

traurig das war falsch .. Finden Sie den Code wie unten –

Antwort

4

Um UIPopoverPresentationcontroller programmatisch zu entlassen,

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

Hoffnung, das hilft.

Verwandte Themen