UIReferenceLibraryViewController

UIReferenceLibraryViewController

如果搜索了一个单词,我有这部分代码可以拉字典:

- (IBAction)searchButtonPressed:(id)sender
{
    NSString *searchTerm = self.searchTextField.text;

    if([UIReferenceLibraryViewController dictionaryHasDefinitionForTerm:searchTerm])
    {
        UIReferenceLibraryViewController *referenceLibraryVC = [[UIReferenceLibraryViewController alloc] initWithTerm:searchTerm];
        [self presentModalViewController:referenceLibraryVC animated:NO];
    }
    else
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Word not found" message:@"no definition" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
        [alert show];
    }
}

但是,它似乎只能在xib的主视图上使用,并且可以覆盖整个iPad屏幕。我如何获得它,使其仅在子视图(仅在屏幕的一部分)中打开?

最佳答案

使用UIPopoverController,就像在本机应用程序中使用的一样。

self.popover = [[UIPopoverController alloc] initWithContentViewController:referenceLibraryVC];
[self.popover presentPopoverFromRect:[sender frame] inView:[sender superview] permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

您将需要保留弹出控制器,直到将其关闭。设置代理,您可以在代理被拒绝时进行监听,以便释放它。

关于ios - 弹出框中的UIReferenceLibraryViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20643742/

10-15 15:17