【问题标题】:Transition of popover controller in ipadipad中popover控制器的过渡
【发布时间】:2012-04-23 03:13:34
【问题描述】:

当我单击此按钮时,会出现一个弹出窗口,用于搜索视图中的文本..但是当我键入 god 时,带有 go 的句子进入弹出窗口控制器 tableviewcell 内,当我单击单元格时,搜索结果显示在弹出框本身,它没有重定向到 mainvieww.my 代码或弹出框控制器是

- (void)Searchpage:(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.popoverController = [[UIPopoverController alloc]
                              initWithContentViewController:navigationController];
    //present the popover view non-modal with a
    //refrence to the button pressed within the current view
    [self.popoverController presentPopoverFromRect:CGRectMake(600, 0, 0, 0)
                                            inView:self.view
                          permittedArrowDirections:UIPopoverArrowDirectionAny
                                          animated:YES];

    //release the popover content

    [popoverContent release];    

}

在搜索页面弹出控制器中,我将此代码重定向到主视图

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Navigation logic may go here. Create and push another view controller.
    ParallelReadViewController *detailViewController = [[ParallelReadViewController alloc] initWithNibName:@"ParallelReadViewController" bundle:nil];


    [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];


}

parallelViewController 是主视图,但现在我在弹出框控制器中获取主视图。我只想关闭此弹出框控制器并导航到 parallelviewcontroller。如何执行此操作。 提前致谢。

【问题讨论】:

  • @Nit haii Nit 当我输入此代码时出现此错误...架构 i386 的未定义符号:“_OBJC_IVAR_$_UIViewController._popoverController”,引用自:-[searchpage tableView:didSelectRowAtIndexPath:] in searchpage.o ld:未找到架构 i386 collect2 的符号:ld 返回 1 个退出状态
  • 显示你的完整错误信息...
  • @Nit plz chi上面的评论.那个错误信息。
  • 我知道,但是这种类型或错误消息的文本比您上面显示的要多。如果您能告诉我,我可能会帮助您...

标签: iphone ipad uinavigationcontroller uipopovercontroller


【解决方案1】:

你可以使用

- (void)dismissPopoverAnimated:(BOOL)animated

关闭弹出框的方法。

并且可以参考以下链接了解更多信息 - http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIPopoverController_class/Reference/Reference.html

编辑 - 您可以使用 -

获取包含弹出框的类
NSArray *viewControllerArray = [[self.navigationController.viewControllers copy] autorelease];
int arrayElementCount = [viewControllerArray count];
YourViewController *aViewController;
for(int index = 0 ; index < arrayElementCount ; index++) {
    if([[viewControllerArray objectAtIndex:index] isKindOfClass:[YourViewController class]]) {
        aViewController = [viewControllerArray objectAtIndex:index];
    }       
}
[aViewController.popoverController dismissPopoverAnimated:YES];

【讨论】:

  • 我在函数里面放了什么代码,是[popoverController dismissPopoverAnimated:YES];???
  • 您想在哪里关闭弹出框调用以下 - [self. popoverControllerdismissPopoverAnimated:YES];
  • 我已经放了这段代码,但是它出现了一个错误,弹出控制器未声明。我把代码放在 didselectrowatindex 路径方法中
  • 您是否使用了正确的拼写,因为您使用相同的方法来创建弹出框,并且相同的方法将用于消除它。检查你是否正确使用了 self.popoverController?
  • 我把这段代码放在 didselctrowatindexpath [self.popoverController dismissPopoverAnimated:YES]; ...现在我得到错误“”在搜索页面类型的对象上找不到属性 popoverController
猜你喜欢
  • 2012-09-20
  • 2012-07-28
  • 1970-01-01
  • 2017-03-01
  • 1970-01-01
  • 2012-09-29
  • 1970-01-01
  • 2017-06-19
  • 1970-01-01
相关资源
最近更新 更多