您的位置:首页 > 其它

presentModalViewController的使用方法

2015-04-09 21:56 357 查看
•模态窗口只是视图控制器显示的一种方式,模态窗口不依赖于控制器容器(例如前两种视图切换一个依赖于UITabBarController,另一个依赖于UINavigationController)
•模态窗口使用起来比较容易,一般的视图控制器只要调用- (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flagcompletion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0);方法视图控制器就会以模态窗口的形式展现,同时调用-(void)dismissViewControllerAnimated: (BOOL)flag
completion: (void(^)(void))completion NS_AVAILABLE_IOS(5_0);方法就会关闭模态窗口。

1.首先创建一个登录界面,在界面中有一个取消和一个登录按钮

#import"KCLoginViewController.h”

@interfaceKCLoginViewController ()

@end

@implementationKCLoginViewController

-(void)viewDidLoad {

[super viewDidLoad];

[self addLoginForm];

}

-(void)addLoginForm{

//登录按钮

UIButton *btnLogin=[UIButtonbuttonWithType:UIButtonTypeSystem];

btnLogin.frame=CGRectMake(120, 270, 80,30);

[btnLoginsetTitle:@"登录"forState:UIControlStateNormal];

[self.viewaddSubview:btnLogin];

//取消登录按钮

UIButton*btnCancel=[UIButtonbuttonWithType:UIButtonTypeSystem];

btnCancel.frame=CGRectMake(170, 270, 80,30);

[btnCancel setTitle:@"取消"forState:UIControlStateNormal];

[self.view addSubview:btnCancel];

[btnCancel addTarget:selfaction:@selector(cancel) forControlEvents:UIControlEventTouchUpInside];

}

-(void)cancel

{

[self dismissViewControllerAnimated:YEScompletion:nil];//点击取消

}

@end

2.定义主界面视图控制器KCMainViewController,在左上角放一个登录按钮用于弹出登录界面

#import"KCMainViewController.h"

#import"KCLoginViewController.h”

@interfaceKCMainViewController()<KCMainDelegate,UIActionSheetDelegate>

{

UIBarButtonItem*_loginButton;

BOOL _isLogin;

}

@end

@implementationKCMainViewController

-(void)viewDidLoad {

[super viewDidLoad];

[self addNavigationBar];

}

#pragmamark 添加到导航栏

-(void)addNavigationBar

{

UINavigationBar *navigationBar = [[UINavigationBaralloc]initWithFrame:CGRectMake(0,0, 320, 44+20)];

[self.viewaddSubview:navigationBar];

UINavigationItem *navigationItem = [[UINavigationItemalloc]initWithTitle:@"WebChat"];

//左侧添加登录按钮

_loginButton=[[UIBarButtonItemalloc]initWithTitle:@"登录"style:UIBarButtonItemStyleDonetarget:selfaction:@selector(login)];

navigationItem.leftBarButtonItem=_loginButton;

[navigationBarpushNavigationItem:navigationItemanimated:NO];

}

#pragmamark 登录操作

-(void)login

{

KCLoginViewController *loginController = [[KCLoginViewControlleralloc]init];

loginController.delegate =self;

[self presentViewController:loginControlleranimated:YEScompletion:nil];

}

@end

AppDelegate.m中

_window=[[UIWindowalloc]initWithFrame:[UIScreenmainScreen].bounds];

_window.backgroundColor =[UIColorcolorWithRed:249/255.0 green:249/255.0 blue:249/255.0 alpha:1];

KCMainViewController *mainController = [[KCMainViewControlleralloc]init];

_window.rootViewController = mainController; //把KCMainViewController设置为根控制器

[_window makeKeyAndVisible];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: