gpt4 book ai didi

iphone - iPhone 应用程序中的导航后退按钮项目事件

转载 作者:行者123 更新时间:2023-12-03 20:36:10 25 4
gpt4 key购买 nike

我正在开发 iPhone 应用程序。应用程序的顶部有一个导航栏。我有两个 View ,即“View1”和“View2”。当您按下“View2” View Controller 时,导航栏会显示一个标题为“View1”的后退按钮,以便您可以返回到 view1。

现在我的问题是,当您单击该按钮时会触发哪个事件?另外是否可以更改导航栏中后退按钮的文本?

任何帮助将不胜感激?

谢谢

最佳答案

您无法仅通过该后退按钮获取特定事件。您可以使用各种 viewWillAppear:viewWillDisappear: 等方法来代替。例如:

//In View2:
- (void) viewWillDisappear:(BOOL) animated {
[super viewWillDisappear:animated];
if (!goingToSubscreen) {
//Do something important here
}
goingToSubscreen = NO;
}

//In View1:
- (void) viewWillAppear:(BOOL) animated {
[super viewWillAppear:animated];
if (wentToSubscreen) {
//Do something important here
}
wentToSubscreen = NO;
}

请注意, bool 值 goneToSubscreen 和goingToSubscreen 应按指定的方式设置。如果您要将另一个 View 推送到 View2 顶部的导航 Controller 上,则应该将 goToSubscreen 设置为 YES,这样它就不会执行重要的操作。相反,您应该在按下 View2 后将 View1 上的 goneToSubscreen 设置为 YES,这样当它再次出现时,是在从该屏幕返回后才会发生一些有趣的事情,而不是在 View1 最初出现时发生。

编辑:从 iOS 5.0 开始,我相信有内​​置的属性可以实现这一点。如果您按后退按钮,则在 viewWillDisappear:viewDidDisappear: 期间,isBeingDismissed 设置为 YES。作为引用,您可以检查的属性是:

isMovingFromParentViewController
isMovingToParentViewController
isBeingPresented
isBeingDismissed

至于改变后退按钮的标题,该属性属于前一个 View 的后退按钮项:

View1.navigationItem.backBarButtonItem.title = @"My New Title";

或者:

View1.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"New Title" style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease];

您的第三个选择是使用自定义按钮来替换后退按钮。它可以让您指定自己的调用方法,因此您不需要使用 -viewWillDisappear:,但这样做会将按钮显示为矩形而不是后退箭头按钮。此按钮出现在 View2 而不是 View1 上:

View2.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"New Title" style:UIBarButtonItemStyleDone target:self action:@selector(dismissView)] autorelease];

关于iphone - iPhone 应用程序中的导航后退按钮项目事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2972233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com