NavigationController不会在完成块内部推送

时间:2014-04-16 04:47:10

标签: ios7 uinavigationcontroller objective-c-blocks

我正在处理一段代码,当用户按下提交按钮时,系统会要求他在能够进入应用程序屏幕之前更新他/她的密码。因此,当您按下按钮时,“登录”按下程序执行,用户在应用程序中进行身份验证,在完成框中,我们显示“重置密码”'查看控制器。但是,推送似乎不起作用。我在块之前和之内打印了navigationController对象,它不是nil。

NSLog(@"%@", [self.navigationController description]);
__weak __typeof(self) weakSelf = self;
[[AppDelegate sharedDelegate] login:self.userIdentifierTextField.text
                                             password:self.passwordTextField.text
                                          persistence:NSURLCredentialPersistencePermanent
                                           completion:^(BOOL success, NSError *error) {
                                               SignInViewController *innerWeak = weakSelf;
                                               if ([[Features sharedFeatures]    allowsAdminMandatedPasswordReset]) {
                                                   //User needs to add new password
                                                   ResetPasswordViewController *resetViewController = [[ResetPasswordViewController alloc] initWithNibName:[ResetPasswordViewController nibName] bundle:nil];
                                                   NSLog(@"%@", [self.navigationController description]);
                                                   if (innerWeak.navigationController != nil) {
                                                       [innerWeak.navigationController pushViewController:resetViewController animated:YES];
                                                   }
                                               }
                                               [MBProgressHUD hideAllHUDsForView:weakSelf.view animated:YES];
                                               mainWindow.userInteractionEnabled = YES;

                                           }];

这里,当我比较navigationController对象上的两个nslog时,它们是相同的。即使以模态方式呈现resetViewController也在完成块中工作,但不知何故推送不起作用。我花了很多时间试图弄明白,而且我对发生的事情感到很困惑。

更新:使用以下作品给我。但我仍然希望通过weakSelf.navigationController

来解决问题
[[AppDelegate sharedDelegate].navigationController pushViewController:resetViewController animated:YES];

0 个答案:

没有答案