我在ios9中使用故事板。我有两个屏幕。一个是登录屏幕,另一个是homeviewcontroller。如果登录成功,我必须导航homeviewcontroller。这是我的要求。使用json解析器和协议的jam是NSURLSession用于登录页面。如果登录成功,则导航到homeviewcontroller。所以我正在写一些代码。登录成功。成功登录后,他们没有导航到homeviewcontroller。我是故事板的新手。有人帮帮我。提前谢谢。
- (IBAction)login:(id)sender {
NSString *user_name=userName.text;
NSString *pass_word=password.text;
NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"http:/Service/security.svc/LoginUser?strUserName=%@&strPassword=%@",pass_word,user_name]];
NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithURL:url
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error)
{
if (!error)
{
NSError *JSONError = nil;
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data
options:0 error:&JSONError];
if (JSONError)
{
NSLog(@"Serialization error: %@", JSONError.localizedDescription);
}
else
{
NSLog(@"Response: %@", dictionary);
NSString *str=[dictionary objectForKey:@"Status"];
tokenVlue=[dictionary objectForKey:@"message"];
NSLog(@"Token Value is :%@",tokenVlue);
NSLog(@"login Status :%@",str);
if([str isEqualToString:@"Success"])
{
HomeViewController *secondViewController =[self.storyboard instantiateViewControllerWithIdentifier:@"homeViewController"];
[self.navigationController pushViewController:secondViewController animated:YES];
}
}
}
else
{
NSLog(@"Error: %@", error.localizedDescription);
}
}];
// Start the task.
[task resume];
}
答案 0 :(得分:1)
使用Segues作为相同的。控制 - 从LoginViewController
拖动到HomeViewController
以创建一个segue。为segue提供标识符,例如:"LoginToHomeSegue"
。确保segue是Show
种。它等于推送视图控制器。 Show Detail
等于当前视图控制器。成功登录后,在LoginViewController
类中,只需调用以下函数:
self.performSegueWithIdentifier("LoginToHomeSegue", sender: self)
这将为你做到这一点。
答案 1 :(得分:1)
在storyboard中有一个标记Initial View Controller
的选项,拖放UINaviagtionController(作为初始视图控制器),LoginViewController应该是它的根视图控制器。从LoginViewController到HomeViewController绘制push segue,并在用户登录时在事件上编写此代码:
[self performSegueWithIdentifier:@"HomeSegue" sender:self];
其中HomeSegue
是从LoginViewController到HomeViewController
答案 2 :(得分:0)
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:**storyboardName** bundle:nil];
HomeViewController *secondViewController =[storyboard instantiateViewControllerWithIdentifier:@"homeViewController"];
[self.navigationController pushViewController:secondViewController animated:YES];
验证HomeViewController的storyboard id是homeViewController 并给出正确的故事板名称
OR
您可以使用segue参考教程http://www.raywenderlich.com/113394/storyboards-tutorial-in-ios-9-part-2 https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/UsingSegues.html