我正在处理iOS应用的用户注册部分,我正在尝试使用网页浏览来获取用户输入。因此,第一个页面视图采用用户的名字,下一个采用姓氏,电话号码。然后,用户接收用户在下一页面视图中输入的验证码。只有当验证码正确时,才允许用户转到(向右滑动)下一页面视图。
我面临的问题是我无法将用户输入捕获到我的视图控制器的属性中,该属性来自UIPageViewController。
我正在使用:
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
NSUInteger index = [(SignupChildViewController *)viewController index];
SignupChildViewController *current=(SignupChildViewController *)viewController;
NSLog(@"%@", current.userCredentials.text);
if(index==3)
{
firstPass=YES;
if([verificationCodeUser isEqualToString:verificationCode])
{
verificationPassed=YES;
index++;
}
else
{
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Oh snap!" message:@"You haven't entered the correct verification code." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
return [self viewControllerAtIndex:index];
}
}
if(index==3)
{
firstPass=YES;
}
index++;
if (index == 6) {
return nil;
}
[self updateInfo:index];
return [self viewControllerAtIndex:index];
}
updateInfo方法如下所示:
(void)updateInfo:(NSInteger)ind
{
switch ([ind integerValue])
{
case 0:
firstName=textview.text;
break;
case 1:
lastName=textview.text;
break;
case 2:
phoneNumber=textview.text;
break;
case 3:
verificationCodeUser=textview.text;
break;
case 4:
birthday=textview.text;
break;
case 5:
password=textview.text;
break;
}
}
这里基于页面的索引,设置了适当的属性。但问题是该属性有时被正确设置,但有时它只是在textview中获得一个空字符串,即使用户输入了一个字符串。如何在使用综合浏览量时捕获用户输入?
答案 0 :(得分:0)
viewControllerAfterViewController:
是致电updateInfo:
的不好的地方,因为您可能认为在情况不是这样的情况下已经转换到该指数。在成功转换以外的案例中,可以调用viewControllerAfterViewController:
。
相反,请尝试在UIPageViewControllerDelegate
方法pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:
或pageViewController:willTransitionToViewControllers:
期间更新信息,以便您确定视图已转换或已过渡。