UIPopoverview for iPhone,iOS 7
Posted
技术标签:
【中文标题】UIPopoverview for iPhone,iOS 7【英文标题】: 【发布时间】:2014-09-06 05:53:59 【问题描述】:我需要弹出视图。我遵循了这个指示。
初始化:在storyboard中创建两个UIViewController。
让我们说 FirstViewController 是正常的,而 SecondViewController 是我们制作的 Popup。 Model Segue:将 UIButton 放入 FirstViewController 并在此 UIButton 上创建一个 segue 到 SecondViewController 作为模型 segue。
Make Transparent:现在选择SecondViewController的UIView(默认使用UIViewController创建的UIView)并将其背景颜色更改为清除颜色。
使背景变暗:在 SecondViewController 中添加一个 UIImageView 覆盖孔屏幕并将其图像设置为一些变暗的半透明图像。您可以从这里获取示例:UIAlertView 背景图片
显示设计:现在添加一个 UIView 和你想要显示的设计类型。这里我展示了我的故事板的屏幕截图。
这里我在登录按钮上添加了 segue,它打开 SecondViewController 作为弹出窗口询问用户名和密码
重要提示:现在是主要步骤。我们希望 SecondViewController 不完全隐藏 FirstViewController。我们已经设置了清晰的颜色,但这还不够。默认情况下它会在模型演示后添加黑色所以我们必须在 FirstViewController 的 viewDidLoad 中添加一行代码。您也可以在其他地方添加它,但它应该在 segue 之前运行。
[self setModalPresentationStyle:UIModalPresentationCurrentContext];
解雇:何时解雇取决于您。这是一个模型演示,所以为了解雇我们做我们为模型演示所做的事情:
[selfdismissViewControllerAnimated:YES 完成:Nil];
但是我正在使用导航控制器,因为那个透明背景没有出现?????
请帮帮我..!!!!我的屏幕截图如下。
【问题讨论】:
你为图像视图应用了正确的图像 s。我已经将你的编码发送到你的邮箱?? 你可以使用弹出视图 很好的 karthik,,,,现在我检查了。它的工作。 【参考方案1】:在freeform
模式下创建一个view controller
,如下图所示
在您的第一个视图控制器中添加一个 UIButton
,如下图所示
在您的第一个视图 controller.h 中添加以下行
#import "UIPopoverController+iPhone.h"
@interface first view controller : UIViewController<UIPopoverControllerDelegate>
@property (nonatomic,strong) UIPopoverController *popOver;
@property (strong, nonatomic) IBOutlet UIButton *popbtn;
在您的第一个视图 controller.m 中,将以下行添加到按钮操作方法中
- (IBAction)popButton:(UIButton *)sender
UILabel *showlblView=[[UILabel alloc]init];
showlblView.frame=CGRectMake(10, 10, 250, 40);
showlblView.text=@"Gopi";
showlblView.textColor=[UIColor whiteColor];
showlblView.textAlignment=NSTextAlignmentCenter;
final *vc=[[final alloc] init];
[vc.view addSubview:showlblView];
self.popOver=[[UIPopoverController alloc]initWithContentViewController:vc];
[self.popOver setPopoverContentSize:CGSizeMake(300, 200)];
CGRect popoverframe=CGRectMake(self.popbtn.frame.origin.x, self.popbtn.frame.origin.y, self.popbtn.frame.size.width, self.popbtn.frame.size.height);
[self.popOver presentPopoverFromRect:popoverframe inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
这里是你的NSObjet
类文件UIPopoverController+iPhone.h
.h 文件
#import <UIKit/UIKit.h>
@interface UIPopoverController (iPhone)
+ (BOOL)_popoversDisabled;
@end
.m 文件
#import "UIPopoverController+iPhone.h"
@implementation UIPopoverController (iPhone)
+ (BOOL)_popoversDisabled
return NO;
@end
完整的项目代码可在以下链接中找到:
https://www.sendspace.com/file/ktie4t
【讨论】:
【参考方案2】:我遇到了同样的问题,但没有找到解决方案如何使用故事板上的 segue 来解决它,但是当我在第一个控制器上展示第二个控制器(使用 navigationViewController 推送)时,它以编程方式工作正常。如果它对您不重要,请尝试以下操作:
+ (void)showWithParent:(UIViewController *)parentController
static SomeViewController *singleton = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
singleton = [storyboard instantiateViewControllerWithIdentifier:@"SomeViewControllerID"];
);
[parentController presentViewController:singleton animated:YES completion:nil];
或者只是:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
SecondViewController *secondController = [storyboard instantiateViewControllerWithIdentifier:@"SecondViewControllerID"];
[firstController presentViewController:secondController animated:YES completion:nil];
【讨论】:
以上是关于UIPopoverview for iPhone,iOS 7的主要内容,如果未能解决你的问题,请参考以下文章
显示键盘 + iPad 时 UIPopoverView 变得扭曲
如何将 UIPopoverView 显示为地图视图的注释? (iPad)