0

你好我正在使用這個library來顯示我的彈出窗口包含與searchBar的tableView。 問題是,一個用戶試圖從tableView中選擇行,而不是關閉popOver並在孔屏幕中顯示選定的行我得到這個: enter image description here。 我試圖用[self.parentViewController.navigationController ...]來推動我的觀點,但沒有奏效。從自定義UIPopOver問題推送新的UIViewController問題

這是我酥料餅的代碼(MainVC.h):

-(IBAction)showPopoverSearch:(id)sender{ 


UIBarButtonItem *btn = (UIBarButtonItem *) sender; 
NSInteger width = 600; 
NSInteger height = 400; 

SearchViewController *searchVC = [self.storyboard instantiateViewControllerWithIdentifier:@"searchView"]; 


searchVC.modalInPopover = NO; 
UINavigationController* contentViewController = [[UINavigationController alloc] initWithRootViewController:searchVC]; 

popoverController = [[WYPopoverController alloc] initWithContentViewController:contentViewController]; 
popoverController.delegate = self; 
//popoverController.passthroughViews = @[btn]; 
popoverController.popoverContentSize = CGSizeMake(width, height); 
popoverController.popoverLayoutMargins = UIEdgeInsetsMake(10, 10, 10, 10); 
popoverController.wantsDefaultContentAppearance = YES; 

[popoverController presentPopoverFromBarButtonItem:btn permittedArrowDirections:WYPopoverArrowDirectionAny animated:YES]; 

}

這是didSelctRow方法(SearchViewController.m):

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main"bundle:nil]; 
    PostReaderViewController *postReaderView = 
    (PostReaderViewController *) 
    [storyboard instantiateViewControllerWithIdentifier:@"postReader"]; 
    postReaderView.thePost = [_postsArray objectAtIndex:indexPath.row]; 

// if ([self.parentViewController.po .popoverController isPopoverVisible]) 
//  [popoverController dismissPopoverAnimated:YES]; 

    [self.navigationController pushViewController:postReaderView animated:YES]; 

} 
+0

你必須調用dismissPopoverAnimated方法 – 2015-04-03 11:30:07

+0

@UttamSinha有你領導我的帖子carrefully? – Chlebta 2015-04-04 07:53:52

回答

0

爲了解決這個問題問題我已將父視圖MainVC.h導航控制器和popoverController傳遞給子控制器SearchViewController.h,然後使用thos e vars解僱我的PopOvercontroller並推送新的VC。代碼片段:
搜索查看

@interface SearchViewController : UIViewController 
@property (strong, nonatomic) WYPopoverController *parentPopoverVC; 
@property (strong, nonatomic) UINavigationController *parentNavigationController; 
@end 

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    ... 
    [self.parentPopoverVC dismissPopoverAnimated:YES]; 
    [self.parentNavigationController pushViewController:postReaderView animated:YES]; 

} 

MainVC.h

-(IBAction)showPopoverSearch:(id)sender{ 

    SearchViewController *searchVC = [self.storyboard instantiateViewControllerWithIdentifier:@"searchView"]; 
    [searchVC setParentPopoverVC:popoverController]; 
    [searchVC setParentNavigationController:self.navigationController]; 
    [popoverController presentPopoverFromBarButtonItem:btn permittedArrowDirections:WYPopoverArrowDirectionAny animated:YES]; 

}