使用UIPageViewController注册用户

时间:2015-03-20 19:21:17

标签: ios uipageviewcontroller

我正在处理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中获得一个空字符串,即使用户输入了一个字符串。如何在使用综合浏览量时捕获用户输入?

1 个答案:

答案 0 :(得分:0)

viewControllerAfterViewController:是致电updateInfo:的不好的地方,因为您可能认为在情况不是这样的情况下已经转换到该指数。在成功转换以外的案例中,可以调用viewControllerAfterViewController:

相反,请尝试在UIPageViewControllerDelegate方法pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:pageViewController:willTransitionToViewControllers:期间更新信息,以便您确定视图已转换或已过渡。