如何在iOS的“弹出窗口”窗口中​​打开.nib文件?

时间:2013-02-21 15:53:57

标签: ios popup nib popupwindow

我的应用程序中有一个.nib文件,我希望将其作为“弹出窗口”窗口显示给用户。

我想得到这样的结果:

enter image description here

在这里你可以看到一个空的“弹出窗口”窗口,其中有一个X用于关闭。准确地说这是一个MT popup Window但遗憾的是你只能用html加载它而不是视图,比如.nib文件

有谁知道如何创建这样的弹出窗口以显示.nib文件或准备好第三方解决方案?

1 个答案:

答案 0 :(得分:0)

自定义UIView就是你想要的朋友。

所以创建一个具有超级UIView的类。

创建一个objective-c类调用。例如,我称之为 CustomView

你的标题(.h)

#import <UIKit/UIKit.h>

@interface CustomView : UIView

@end

你的班级(.m)     #import“CustomView.h”

@implementation CustomView

- (id)initWithFrame:(CGRect)frame
{ 
    self = [super initWithFrame:frame];
    if (self) {
    // Initialization code
    [self loadNib];
    }
    return self;
}

- (void) loadNib
{
    NSArray * subviewArray = [[NSBundle mainBundle] loadNibNamed:@"MyNib" owner:self options:nil];
    UIView * mainView = [subviewArray objectAtIndex:0];

    [self addSubview:mainView];

}
- (IBAction)close:(id)sender{
     [self removeFromSuperview];
}
@end

现在在ViewController调用中添加自定义视图。你们很多人都希望在IBAction(按钮点击等)中使用它。

 CGRect frame = CGRectMake(10,10,300, 460);
 CustomView *view = [[CustomView alloc] initWithFrame:frame]; 
 [self.view addSubview:view];

当您的自定义视图添加到主视图时,它将加载笔尖。

编辑:让x关闭它。在你的customView有一个IBACTION,只是说   [self removeFromSuperView]; 您可能希望设置一个与控制器通信的委托,以便在关闭视图等时执行某些操作。

希望能够点按关闭自定义视图以关闭它,创建UIView在其上放置UITapGestureRecognizer关闭自定义视图并将其放在自定义视图下方并覆盖整个视图屏幕。

希望这有帮助,

BooRanger