在Objective - C

时间:2016-02-12 08:24:20

标签: objective-c iphone uiview

我的viewcontroller带有2个按钮的视图。如果我按下按钮我想从我的数据库中获取带有搜索栏+数据的新窗口。如果没有新VC,我怎么能实现它呢?

2 个答案:

答案 0 :(得分:1)

您只需按一下按钮即可将另一个视图添加到当前视图控制器中。

这将是我的方法:

为视图创建一个单独的类(在您的情况下为搜索栏和数据库中的数据)。另外一个单独的XIB也很方便。

让课程命名为PopOver'

在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,因为在您显示“弹出窗口”时,您不希望用户与视图控制器进行交互。窗口。在这种情况下,最好在应用程序窗口中显示视图。

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

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

希望这有帮助。

谢谢!

答案 1 :(得分:1)

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

窗口。

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

  • 创建一个File-> New-> File-> iOS(UserInterface),选择视图名称吧 " YourView"
  • 创建另一个文件 - > New->文件 - > 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];

您的观点已添加到窗口。