2012-05-17 34 views
1

我有一个popovercontroller来显示一个搜索页面,它显示了很好的搜索页面,当用户点击popover内的单元格时,它会显示popovercontroller内的相应页面,我不想要它,所以我把NSNotification用于显示popover,它工作正常,但我遇到了一个问题,但导航不在popovercontroller那里发生,只有解雇发生。 这是我的代码在本页面viewDidLoad方法来创建酥料饼UIPopOverViewControler解雇问题

-(void)revealRightSidebar:(id)sender 
{ 
    searchpage* popoverContent = [[searchpage alloc] 
            init];  
    UINavigationController *navigationController = [[[UINavigationController alloc] initWithRootViewController:popoverContent] autorelease]; 

    //resize the popover view shown 
    //in the current view to the view's size 
    popoverContent.contentSizeForViewInPopover = 
    CGSizeMake(320,650); 

    //create a popover controller 
    self.popup = [[UIPopoverController alloc] 
           initWithContentViewController:navigationController]; 

    [self.popup presentPopoverFromRect:_btnsearch.frame 
              inView:self.view 
          permittedArrowDirections:UIPopoverArrowDirectionAny 
              animated:YES]; 

    //release the popover content 

    [popoverContent release];  

    [self resetReadViewToVerse:1]; 
} 

我把通知

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismissThePopover) name:@"popoverShouldDismiss" object:nil]; 
} 

在searchpage我把这个代码导航到相应的搜索结果页面

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{   
    ParallelReadViewController *detailViewController = [[ParallelReadViewController alloc] initWithNibName:@"ParallelReadViewController" bundle:nil]; 

    //detailViewController.firstString = firstString; 
    // ... 
    // Pass the selected object to the new view controller. 

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

    [detailViewController release]; 
    delegate.selectedBook = [[searchResults objectAtIndex:indexPath.row] objectForKey:@"book"]; 
    delegate.selectedChapter = [[searchResults objectAtIndex:indexPath.row] objectForKey:@"chapter"]; 
    delegate.selectedVerse = [[searchResults objectAtIndex:indexPath.row] objectForKey:@"verse"]; 
    [delegate reloadVerses]; 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"popoverShouldDismiss" object:nil]; 
} 

但是,当我删除通知时,导航到parallelReadViewController页面中的通讯员搜索,但在popover本身,这里popover解雇,但没有navigation.please帮我做到这一点。

+0

@Atulkumar V.Jain从乌尔侧任何帮助吗? – stackiphone

回答

0

您必须在AppDelegate类中声明navigationController。使用navigationController推送所需的视图。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{     
    ParallelReadViewController *detailViewController = [[ParallelReadViewController alloc] initWithNibName:@"ParallelReadViewController" bundle:nil];   
    //detailViewController.firstString = firstString;  
    // ... 
    // Pass the selected object to the new view controller. 
    [delegate.navigationController pushViewController:detailViewController animated:YES];   
    [detailViewController release]; 
    delegate.selectedBook = [[searchResults objectAtIndex:indexPath.row] objectForKey:@"book"]; 
    delegate.selectedChapter = [[searchResults objectAtIndex:indexPath.row] objectForKey:@"chapter"]; 
    delegate.selectedVerse = [[searchResults objectAtIndex:indexPath.row] objectForKey:@"verse"]; 
    [delegate reloadVerses]; 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"popoverShouldDismiss" object:nil]; 
} 

希望这可以帮助你.......

+0

@AthulKumar V.Jain,我把你的代码,但没有运气... – stackiphone