【Modal】【Code】url
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];
}