【UIKit】控制器之间的切换1 【Modal】

时间:2014-04-28 13:32:52   收藏:0   阅读:546

bubuko.com,布布扣

【Modal】【?Code

1.首先有2个控制器,并且都拥有视图界面。

?bubuko.com,布布扣

2.点击登录后,第二个页面会从下方上移,那就得在第一个界面中首先创建另外一个界面。然后转向

首先得加载一个协议,这个就是第二个页面的代理。

<LoginViewControllerDelegate>

2).点击登录进行转向

bubuko.com,布布扣
- (IBAction)Login {
    // 初始化控制器
    LoginViewController *login=[[LoginViewController alloc]init];
    login.delegate=self; 
    // 弹出登录界面
    [self presentViewController:login animated:YES completion:^{
        NSLog(@"调用");
    }];
}
bubuko.com,布布扣

3. 这里先使用一个代理对象方法,用来将数据从下个控制器获取

#pragma mark LoginViewControllerDelegate 代理方法
-(void)loginSuccess:(NSString *)usernameText
{
    self.usernamelabel.text=usernameText;
}

 

 在LoginViewController 中的.h文件中声明一个代理对象

#pragma mark LoginViewControllerDelegate 代理方法
-(void)loginSuccess:(NSString *)usernameText
{
    self.usernamelabel.text=usernameText;
}

在上面个控制器创建的username在这里需要声明,让上个控制器能使用

@protocol LoginViewControllerDelegate <NSObject>

-(void)loginSuccess:(NSString *)usernameText;

 

返回上一个控制器

#pragma mark 返回
- (IBAction)back:(id)sender {
    // 关闭当前的模态控制器(登陆界面本身)
    [self dismissViewControllerAnimated:YES completion:nil];
}

这里主要是关闭当前控制器,然后将text传入上个控制器。

bubuko.com,布布扣
#pragma mark 登录
- (IBAction)login {
    // 取出用户名,并传回上一个控制器
    NSString *text = self.username.text;
    
    [self.delegate loginSuccess:text];
    
    // 关闭当前控制器
    [self dismissViewControllerAnimated:YES completion:nil];
    
}
bubuko.com,布布扣

 


 

bubuko.com,布布扣

【modal2】:使用Storyboard【?Code

1.添加一个控制器FirstViewController

bubuko.com,布布扣

2.在storyboard中添加一个viewController并且设置控制器为FirstViewController

bubuko.com,布布扣

3. 将button按钮右键链接到新的View

bubuko.com,布布扣

4.选择modal效果

bubuko.com,布布扣

5.此时就会多出中间的连线

bubuko.com,布布扣

6.FirstViewController 中添加按钮单击事件返回

- (IBAction)back {
    
    [self dismissViewControllerAnimated:YES completion:nil];
}

 

【UIKit】控制器之间的切换1 【Modal】,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!