Iphone 将UIViewController显示为popover

Iphone 将UIViewController显示为popover,iphone,cocoa-touch,Iphone,Cocoa Touch,我想将UIViewController显示为其他UIViewController上的小弹出框。 UIViewController应为显示模式,但不能覆盖整个屏幕。 它应该只显示在屏幕的下三分之一处 有人能给我指一个教程或给我一些提示来开始这个吗 我在谷歌上搜索了一个多小时,但没有找到任何对我有帮助的东西:( 谢谢你的帮助, 斯蒂芬这可能会有所帮助。 您必须在标头中声明popOverController,并将其作为属性并合成它 if([self.popOverController isPopove

我想将UIViewController显示为其他UIViewController上的小弹出框。 UIViewController应为显示模式,但不能覆盖整个屏幕。 它应该只显示在屏幕的下三分之一处

有人能给我指一个教程或给我一些提示来开始这个吗

我在谷歌上搜索了一个多小时,但没有找到任何对我有帮助的东西:(

谢谢你的帮助, 斯蒂芬

这可能会有所帮助。 您必须在标头中声明popOverController,并将其作为属性并合成它

if([self.popOverController isPopoverVisible])
{

    [self.popOverController dismissPopoverAnimated:YES];
    return;
}

UINavigationController *favNav = [[UINavigationController alloc]
                                  initWithRootViewController:favoritesView];

//favoritesView is an outlet to the VC Favorites
//make a nav controller with the root view an outlet to the view you want to present.


self.popOverController = [[[UIPopoverController alloc] 
                           initWithContentViewController:favNav] autorelease];

    [popOverController presentPopoverFromBarButtonItem:revealFavorites permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; //revealFavorites is the button i press to show the favorites popover
favoritesView.view.frame = CGRectMake(10, 10, 310, 320); //set the frame




if (![self.popOverController isPopoverVisible]) {
    [favNav release];

}

}
这可能会有帮助。 您必须在标头中声明popOverController,并将其作为属性并合成它

if([self.popOverController isPopoverVisible])
{

    [self.popOverController dismissPopoverAnimated:YES];
    return;
}

UINavigationController *favNav = [[UINavigationController alloc]
                                  initWithRootViewController:favoritesView];

//favoritesView is an outlet to the VC Favorites
//make a nav controller with the root view an outlet to the view you want to present.


self.popOverController = [[[UIPopoverController alloc] 
                           initWithContentViewController:favNav] autorelease];

    [popOverController presentPopoverFromBarButtonItem:revealFavorites permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; //revealFavorites is the button i press to show the favorites popover
favoritesView.view.frame = CGRectMake(10, 10, 310, 320); //set the frame




if (![self.popOverController isPopoverVisible]) {
    [favNav release];

}

}

刚刚发现这个问题仍然没有答案……你有多种选择来实现在iPhone上运行这样的功能: 视情况而定,我想我会选择从NIB加载UIViewController子类,该NIB配置为显示屏幕大小的视图,backgroundColor属性设置为[UIColor clearColor]。将您希望显示为弹出框的任何子视图添加到该视图的所需位置(例如,屏幕的下三分之一)。然后,您可以使用UIModalTransitionStyleCrossResolve以模态方式呈现视图控制器,使其淡入,甚至可以使用背景视图截取触摸事件以关闭模态视图。
另一种可能是将popover的视图控制器的视图作为子视图添加到主视图控制器的视图中。您可以使用UIView的动画类方法来设置过渡动画。

刚刚发现这个问题仍然没有答案……您有多个选项可以在iPhone上实现这一点: 视情况而定,我想我会选择从NIB加载UIViewController子类,该NIB配置为显示屏幕大小的视图,backgroundColor属性设置为[UIColor clearColor]。将您希望显示为弹出框的任何子视图添加到该视图的所需位置(例如,屏幕的下三分之一)。然后,您可以使用UIModalTransitionStyleCrossResolve以模态方式呈现视图控制器,使其淡入,甚至可以使用背景视图截取触摸事件以关闭模态视图。
另一种可能是将popover的视图控制器的视图作为子视图添加到主视图控制器的视图中。您可以使用UIView的动画类方法来设置过渡动画。

您使用的是UIPopopOvercontoller,但这只是iPad…我想为iPhone构建类似的视图。但我想在e相同的位置。您正在使用UIPopOvercontoller,但这只是iPad…我想为iPhone构建类似的东西。但我想在同一位置显示所有视图。