【问题标题】:overriding default behaviour of backBarButtonItem覆盖 backBarButtonItem 的默认行为
【发布时间】:2023-03-21 23:53:01
【问题描述】:

我在视图之间导航时遇到问题,基本上我有 3 个视图:

  1. 根视图
  2. view1
  3. 查看2

我想要做的是当我点击View2 的后退按钮时,我希望加载 RootView 而不是加载 view1(这是默认值)。

..在推送view2ViewController之前,我已经在My view1.m中写了如下代码,代码:

 UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:@"Back" target:self action:@selector(someMethod:)];
self.navigationItem.backBarButtonItem = back;
-(void)someMethod:(id)sender{ [self.navigationViewCOntroller popToRootViewControllerAnimated:YES] }

上面的代码不工作

【问题讨论】:

  • 不要明白这个问题,你不是说view1和view2都被弹出了吗?这不是你的目标吗?
  • 是的..,这就是我的想法..,但它没有发生

标签: iphone objective-c uiview uinavigationcontroller


【解决方案1】:

试试这个:

转到视图:

Aview *aview =[[Aview alloc] initWithNibName:nil bundle:nil];
    settings.modalPresentationStyle = UIModalPresentationFullScreen;
    [self presentModalViewController:settings animated:YES];

返回:

[self dismissModalViewControllerAnimated:YES];

所以在你的情况下:

-(void)someMethod:(id)sender{ 
 Rootview *rootview =[[Rootview alloc] initWithNibName:nil bundle:nil];
        settings.modalPresentationStyle = UIModalPresentationFullScreen;
        [self presentModalViewController:settings animated:YES];
}

【讨论】:

  • 但是,在我的情况下..,“someMethod”动作没有被调用......但我可以将 backBarButtonItem 的文本更改为“回到 RootView”.. 我正在做view1 的 viewDidLoad 中的所有这些变化...,因为 backBarButtonItem 需要在上一个视图中配置
【解决方案2】:

你问题的后半部分不清楚。

试试这个 [self.navigationController popToRootViewControllerAnimated:YES];

希望这对你有用。这样您就可以从 View2 导航到您的根视图。

【讨论】:

  • 可能是我的问题的后半部分让所有人都感到困惑..,所以我删除了..it...谢谢会检查你的建议
  • 请不要使用儿童文字说话。
  • 我很抱歉冒犯了这是不必要的。我的观点是,如果您要写答案,请花时间用正确的英语写。它可以帮助所有访问 SO 寻找答案的人,尤其是那些英语不好的人。
  • 随便 !!... 我一点也不介意.. 不知何故,操作方法集没有被调用..,但是按钮显示在 View2 中,标题为“返回 RootView”我在 view1 的 viewDidLoad 中设置了
猜你喜欢
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多