【UIKit】控制器之間的切換1 【Modal】

【Modal】【Codeurl

1.首先有2個控制器,而且都擁有視圖界面。spa

3d

2.點擊登陸後,第二個頁面會從下方上移,那就得在第一個界面中首先建立另一個界面。而後轉向代理

首先得加載一個協議,這個就是第二個頁面的代理。code

<LoginViewControllerDelegate>

2).點擊登陸進行轉向對象

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

3. 這裏先使用一個代理對象方法,用來將數據從下個控制器獲取blog

#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在這裏須要聲明,讓上個控制器能使用get

@protocol LoginViewControllerDelegate <NSObject>

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

 

返回上一個控制器it

#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];
}
相關文章
相關標籤/搜索