【问题标题】:UINavigation bar back button not respondingUINavigationbar 后退按钮没有响应
【发布时间】:2012-04-30 02:52:28
【问题描述】:

我有一个cameraview,我正在使用TableViewController 推送另一个视图。我可以使用导航栏控制器从我的主视图中推送第二个视图。但是第二个视图(表格视图)的后退按钮没有响应。我不知道为什么。

提前致谢。

@WrightCS 感谢您的即时回复。

在我的应用委托中。

ViewController *vc= [[ViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc]    initWithRootViewController:vc];
[self.window setRootViewController :navController];
[self.window makeKeyAndVisible];
return YES;

现在我正在使用一个临时按钮来推送视图。

-(IBAction)testButtonPressed {
    TableView *tableVC = [[TableView alloc] initWithStyle:UITableViewStylePlain];
    [self.navigationController pushViewController:tableVC animated:YES];
}

【问题讨论】:

  • 定位您用于视图的代码,如何创建第二个视图等
  • @WrightsCS 感谢您的即时回复。
  • 您的代码中没有任何内容表明后退按钮没有响应的原因。
  • @WrightsCS 有没有链接到左后退按钮的方法?因为后退按钮与导航栏一起出现,我只知道向前推动视图。很抱歉我不是很了解,但如果你能指导我,那将是一种善意的姿态。
  • 不,如果您将视图推送到同一个堆栈上,那么后退按钮应该已经存在并链接到返回。

标签: ios uitableview uinavigationbar


【解决方案1】:

您的后退按钮可能不起作用的原因有几个:

  • 您正在使用自定义 UIButton 并且框架/边界不正确您可以使用 [yourButtonName sizeToFit] 调整大小。

  • 您正在以编程方式添加按钮,而不是添加点击事件:

    [yourButtonName addTarget:self action:@selector(yourButtonNameTapped:) forControlEvents: UIControlEventTouchUpInside];

不要忘记您的活动。

...
-(void)yourButtonNamedTapped:(id)sender
{
...
}

文档:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIControl_Class/Reference/Reference.html

如果您使用的是 UINavigationController,则在您使用 [self.navigationController pushViewController:viewControllerName] 时会自动显示返回;

【讨论】:

  • 首先感谢您花时间回答我的问题。我正在使用 UINavigationController,因此出现了后退按钮。但是我发现了问题,并且也解决了。我读了你的 cmets,我会记住它以备将来使用。它看起来非常有用且很有帮助。谢谢。
  • 只是出于好奇,出了什么问题?
【解决方案2】:
  -(IBAction)testButtonPressed {
        TableView *tableVC = [[TableView alloc] initWithStyle:UITableViewStylePlain];

        UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
        self.navigationItem.backBarButtonItem = backBarButtonItem;
        [backBarButtonItem release];

        [self.navigationController pushViewController:tableVC animated:YES];
    }

我认为这对你会有帮助。

【讨论】:

    【解决方案3】:
    - (void)viewDidLoad
    {      
        UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self  action:@selector(backButtonDidClicked:)];
        self.navigationItem.backBarButtonItem = backBarButtonItem;
        [backBarButtonItem release];
    }
    
    -(void)backButtonDidClicked :(id)sender
    {  
        [self.navigationController popViewControllerAnimated:YES];
    }
    

    它应该适合你!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-01
      • 2023-04-01
      • 1970-01-01
      • 2012-01-10
      • 2011-01-04
      • 2011-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多