【问题标题】:pushViewController and popToRootViewControllerpushViewController 和 popToRootViewController
【发布时间】:2012-02-11 18:53:55
【问题描述】:

我的应用程序正在使用 pushViewController 以模态方式显示导航控制器

 [navigationController pushViewController:_viewController animated:YES];

导航控制器已完成按钮

UIButton* backButton = [UIButton buttonWithType:101]; 
[backButton addTarget:self action:@selector(dismissView:) forControlEvents:UIControlEventTouchUpInside];
[backButton setTitle:@"Done" forState:UIControlStateNormal];

UIBarButtonItem* backItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];

self.navigationItem.leftBarButtonItem = backItem;
[backItem release];

按下完成按钮后,我希望它导航回主窗口

-(void) dismissView: (id)sender

{
    [self.navigationController popToRootViewControllerAnimated:YES];
//[self.navigationController popToViewController:_viewController animated:YES];

}

但是当我按下完成按钮时,什么也没有发生。这是为什么呢?

【问题讨论】:

  • 你把初始化完成按钮的代码放在哪里?您是否尝试过在“dismissView:”选择器中添加 NSLog 语句以确定它是否实际被调用?
  • 如何初始化完成按钮?

标签: iphone uinavigationcontroller dismiss rootview poptoviewcontroller


【解决方案1】:

请在您的 dissmissView 中使用 NSLog

-(void) dismissView: (id)sender

{
   NSLog(@"Hii....");
    [self.navigationController popToRootViewControllerAnimated:YES];
//[self.navigationController popToViewController:_viewController animated:YES];

}

或使用断点调试应用程序。

【讨论】:

    【解决方案2】:
    UIButton* backButton = [UIButton buttonWithType:101];
    

    我很确定“101”无效

    + (id)buttonWithType:(UIButtonType)buttonType
    

    您应该使用以下 UIButtonType 值之一

    typedef enum {
        UIButtonTypeCustom = 0,
        UIButtonTypeRoundedRect,
        UIButtonTypeDetailDisclosure,
        UIButtonTypeInfoLight,
        UIButtonTypeInfoDark,
        UIButtonTypeContactAdd,
    } UIButtonType;
    

    除了测试你的代码在你的dismissView中放置一些NSLog:看看它是否被调用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 2011-01-17
      • 2023-03-24
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多