1

このボタンをクリックすると、ビュー内のテキストを検索するためのポップオーバーが表示されます。ただし、godと入力すると、goの文がポップオーバーコントローラーのテーブルビューセル内に表示されます。セルをクリックすると、検索結果がポップオーバー自体に表示されます。 、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.howに移動します。前もって感謝します。

4

1 に答える 1

0

使用できます

- (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];
于 2012-04-23T04:12:06.113 に答える