2016-02-12 66 views
-3

我有我的viewcontroller与2按钮的视图。如果我按下按钮,我想用搜索栏+我的数据库中的数据获取新窗口。如何在没有新的VC的情况下实现它?在目标中创建额外的窗口 - C

+0

在xcode中按cmd + q。 – dan

回答

1

你基本上想要在按下按钮时将另一个视图带入当前视图控制器。

这里将是我的做法:

做出视图一个单独的类(在你的情况下,搜索栏,然后从数据库中的数据)。另外一个单独的XIB会很方便。

让类被命名为“酥料饼”

在Popover.m:

+ (PopOverView*) createInstance { 

    PopOverView *xibView = [[[NSBundle mainBundle] loadNibNamed:@"PopOverView" owner:self options:nil] objectAtIndex:0]; 
    [xibView setFrame:CGRectMake(CGRectMinXEdge + 10, CGRectMinYEdge + 10, 200, 200)]; 
    // adjust frame according to your need 

    [xibView setBackgroundColor:[UIColor redColor]]; 

    return xibView; 
} 

下一页:在您的视图控制器,在你将添加以下代码按钮的水龙头:

- (IBAction)buttonTapped:(id)sender { 

    UIView *myPopoverView = [PopOverView createInstance]; 
    AppDelegate *appDel = [UIApplication sharedApplication].delegate; 
    [appDel.window addSubview:myPopoverView]; 
} 

注意:我将'PopOver'视图添加到应用程序委托的窗口而不是VC,因为在您的情况下,您不希望用户在显示时与视图控制器进行交互g'Popover'窗口。在这种情况下,最好在应用程序窗口中呈现视图。

还:您可以在呈现视图时为其设置动画效果。为此,请参阅此链接:addSubview animation

最后,您需要在PopOver视图类中实现搜索和数据库功能。 (不要忘记在VC和Popover之间添加代理)。

希望这会有所帮助。

谢谢!

+0

谢谢,它适用于我。我有问题。在解决方案中添加X按钮有没有简单的方法?我只想关闭popover – Kiee79

+0

当然。只需在PopOver XIB文件中添加一个按钮即可。给它一个X(十字)图像。将按钮点击的代表从Popover.m设置到您的VC,然后从窗口中删除弹出式子视图。 –

+0

如果没有问题,你可以写我这个代码应该在Popover.m和ViewControler.m?我在代表如此糟糕,meybe它帮助我理解 – Kiee79

1

当您在xcode中创建项目并且整个应用程序正在该窗口上运行时,默认情况下会在应用程序中创建窗口。

如果我没有错,你想创建一个视图并将其添加到一个窗口。

  • 创建一个文件 - >新建 - >文件 - >的iOS(的UserInterface),选择视图名称它 “YourView”
  • 创建另一个文件 - >新建 - >文件 - >的iOS(来源),选择CocoaTouch类, 命名为

“YourView” “的UIView” 的子类。

YourView *viewObj = [[[NSBundle mainBundle] loadNibNamed:@"YourView" owner:self options:nil] objectAtIndex:0]; 

AppDelgate *appDelObj = [[UIApplication sharedApplication] delegate]; 
[appDelObj.window addSubview:viewObj]; 

您的意见已添加到窗口上。