【发布时间】:2012-01-13 12:50:09
【问题描述】:
您好,我有三种观点,我想实现一些不起作用的东西。如果用户按下某个按钮,我有一个主视图,代码会检查他是否已登录: 如果是,则直接将他发送到视图 B,如果不是,则首先进入登录视图。 成功登录后,我有这个代码去查看b:
incidencias =[[MisIncidencias alloc]
initWithNibName:@"MisIncidencias"
bundle:nil];
[self.view addSubview:incidencias.view];
问题是我想摆脱登录视图,因为它显示在下面,如果用户点击返回它会返回登录但如果我添加:
[self.view removeFromSuperview];
[self.view addSubview:incidencias.view] 之前或之后,我都会被重定向到主视图;
我不知道我是否清楚地解释了自己,但例如在 Android 中,您可以调用完成,然后调用下一个活动,登录活动消失,但在 iphone 中我不知道该怎么做。
我发现另一种解决方案是一个接一个地添加两个视图,但效果并不好:
incidencias=[[MisIncidencias alloc]
initWithNibName:@"MisIncidencias"
bundle:nil
];
[self.view addSubview:incidencias.view];
login=[[LoginViewController alloc]
initWithNibName:@"LoginViewController"
bundle:nil];
[self.view addSubview:login.view];
它不能很好地工作,因为事件开始并且不等待登录完成。
谢谢
编辑:感谢 beOn,我修改了添加协议的代码: LoginViewControllerDelegate 和viewController里面的这个方法:
- (void)loginSucceededFromController:(LoginViewController*)viewController {
[viewController.view removeFromSuperview];
incidencias =[[MisIncidencias alloc]
initWithNibName:@"MisIncidencias"
bundle:nil];
[self.view addSubview:incidencias.view];
}
在 LoginViewController 我有
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex: (NSInteger)buttonIndex{
if(self.delegate)
[self.delegate loginSucceededFromController:self]
} 它得到一个错误: 语义问题:在“LoginViewController *”类型的对象上找不到属性“委托”
如果登录成功,用户会看到一个警报,一旦他点击确定,就会调用上面的方法。
我还应该添加什么?我是从iphone开始的,不太明白什么是delegate(我来自java)
【问题讨论】:
-
查看我对您对我的回复 fmi 的回复...
标签: iphone navigation views