我正在开发一个登录应用程序,我有一些疑问。如果按下登录按钮,该文本字段中的任何文本都应显示在下一个视图控制器中 - 如用户名和密码。所以我使用segues将值带到下一个视图控制器。
如果两个文本字段值均为空,然后按登录按钮,则显示警报以填充两个文本字段。在警报中按下OK按钮时,程序AUTOMATICALLY进入第二个控制器。当按下按钮时,我不知道如何使用相同的视图控制器。请帮助我。
我的代码:
-(void)prepareForSegue:(UIStoryboardSegue )segue sender:(id)sender
{
second *transferViewController = [segue destinationViewController];
if ([txt1.text isEqualToString:@"" || txt2.text isEqualToString:@"" ])
{
UIAlertView * mes=[[UIAlertView alloc] initWithTitle:@"Hello World!!!!!!" message:@"This is the Iphone app" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil];
[mes show];
}
}
答案 0 :(得分:0)
有很多不同的方法可以做到这一点。其中一个更好的方法是使用未附加到动作的segue连接故事板中的两个场景。之后,您可以以编程方式触发视图控制器中的segue。执行此操作的方法是通过控制 - 从故事板场景底部的文件所有者图标拖动到目标场景。
将出现一个弹出窗口,询问“手动搜索”中的选项;选择“推”作为类型。点击小方块,确保您在属性检查器中。给它一个标识符,用于在代码中引用它。接下来,您将使用按钮触发segue(或者您可以使用AlertView委托)。它有像“buttonAction”这样的选择器。这是按下按钮时将调用的函数。此函数用于触发segue并转到目标场景。所以这个按钮的void()方法在该方法中并像这样调用segue:
-(void)buttonAction:(id)sender{
if(textfield.text.length!=0){
[self performSegueWithIdentifier:@"MySegueName" sender:sender];
}
else{
alert!!
}
}
答案 1 :(得分:0)
不需要prepareForSegue
-(void)prepareForSegue:(UIStoryboardSegue )segue sender:(id)sender
{ second *transferViewController = [segue destinationViewController];
}
将您的功能更改为IBAction
方法
-(IBAction)login:(id)sender
{
if ([txt1.text isEqualToString:@"" || txt2.text isEqualToString:@"" ])
{
UIAlertView *mes=[[UIAlertView alloc] initWithTitle:@"Empty Fields !!!" message:@"enter the user details" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil];
[mes show];
}
else
{
// both textfield are filled and validated
[self performSegueWithIdentifier:@"your segue name of secondVC" sender:sender];
}
}
答案 2 :(得分:0)
试试这个......
- (IBAction)loginButtonPressed:(UIButton *)sender
{
if ([txt1.text isEqualToString:@"" || txt2.text isEqualToString:@"" ])
{
UIAlertView * mes=[[UIAlertView alloc] initWithTitle:@"Hello World!!!!!!" message:@"This is the Iphone app" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles: nil];
[mes show];
}
else
{
[self performSegueWithIdentifier:@"yoursegueID" sender:nil]; //
}
}
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
[self performSegueWithIdentifier:@"yoursegueID" sender:nil];
}
}
还设置UIAlertViewDelegate
@interface YourViewController : UIViewController <UIAlertViewDelegate> //in which you used `UIAlertView`
答案 3 :(得分:0)
我建议实现方法shouldPerformSegueWithIdentifier:
此方法返回一个BOOL,指示segue是否应继续 -
-(BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
{
BOOL ret=YES:
if ([txt1.text isEqualToString:@"" || txt2.text isEqualToString:@"" ])
{
UIAlertView * mes=[[UIAlertView alloc] initWithTitle:@"Hello World!!!!!!" message:@"This is the Iphone app" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil];
[mes show];
ret=NO;
}
return ret;
}