iphone - UIPopOverViewControler 中的解雇问题

标签 iphone ios ios5 uipopovercontroller

我有一个 popovercontroller 来显示搜索页面,它很好地显示搜索页面,当用户点击 popover 内的单元格时,它将在 popovercontroller< 内显示相应的页面,我不想要它,所以我放了 NSNotification 来显示 popover,它工作正常,但我遇到了一个问题,但是导航没有发生在 popovercontroller 中,只发生解雇。 这是我创建弹出窗口的代码

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

在这个页面的 viewDidLoad 方法中我放置了通知

- (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 关闭, 但没有导航。请帮我做这件事。

最佳答案

您必须在 AppDelegate 类中声明一个 navigationController。使用 navigationController 推送所需的 View 。

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

希望这对你有帮助..........

关于iphone - UIPopOverViewControler 中的解雇问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10634539/

相关文章:

javascript - UIWebView Javascript 窗口到窗口通信

iphone - 将信息存储在钥匙串(keychain)中

javascript - 焦点到 iPhone 上文本区域的开头?

ios - 将 NSString 转换为 NSDictionary

iphone - 蓝牙警告 Xcode?

iphone - ios 使用 AVFramework 捕获图像

objective-c - 如何从 JSON 中获取整数

iphone - iOS 5支持web.app中的背景音频吗? (需要开发人员进行测试)

iphone - 使用数据库的新信息更新数组

iphone - 更改 iPhone 上 subview 的 z 顺序