presentModalViewController的使用方法

•模态窗口只是视图控制器显示的一种方式,模态窗口不依赖于控制器容器(例如前两种视图切换一个依赖于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];



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值