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

【Modal】【Code

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

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

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

<LoginViewControllerDelegate>

2).点击登录进行转向

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

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传入上个控制器。

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

 


 

【modal2】:使用Storyboard【Code

1.添加一个控制器FirstViewController

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

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

4.选择modal效果

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

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

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

 

posted @ 2014-04-27 23:12  太过于漂流  阅读(371)  评论(0编辑  收藏  举报