如何处理用户在按下viewController后过快按下后退按钮?

时间:2013-05-16 06:09:25

标签: objective-c uinavigationcontroller

通常在推送viewController之后,我想做某些事情。例如,在添加手机功能时,我会打开编辑业务并将焦点设置到手机字段。

如果推送了viewController后用户按下按钮太快,应用程序崩溃。

这样做的标准方法是什么?

这是代码:

+(BGBusinessEditViewController *) pushNewEditViewControllerWithBizandReturnValue: (Business *)biz withNavController :(UINavigationController *) nav andSelectPhone:(BOOL) selectPhoneAfterward
{
    BGBusinessEditViewController * editBusiness = [[BGBusinessEditViewController alloc]init];
    //[editBusiness view];//load the stuff first
    [nav vPushViewController:editBusiness animated:YES andPerformBlock:^{
        if (biz) {
            editBusiness.biz=biz; //viewDidload must be called first before setting bizs
        }
        if (selectPhoneAfterward)
        {
            [editBusiness selectPhone];
        }
    }];

    return editBusiness;
}

-(void) selectPhone
{
    NSIndexPath * ipth =[NSIndexPath indexPathForItem:BGBusinessEditTextPhoneNumber inSection:0];
    [self.tableView selectRowAtIndexPath: ipth animated:NO scrollPosition:UITableViewScrollPositionTop];
    [self tableView:self.tableView didSelectRowAtIndexPath:ipth];
}

基本上我在导航视图控制器中创建了一个类别,只有当导航控制器已经到达- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated;时才会运行代码

1 个答案:

答案 0 :(得分:1)

好吧,隐藏后退按钮直到viewDidAppear,然后取消隐藏它。