【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];
}
【UIKit】控制器之间的切换1 【Modal】,布布扣,bubuko.com
时间: 2024-10-13 18:29:34