gpt4 book ai didi

iphone - 使用导航栏和后退按钮创建模态视图

转载 作者:可可西里 更新时间:2023-11-01 04:08:59 25 4
gpt4 key购买 nike

我想创建一个带有导航项的模态视图(屏幕截图中的右 View ),并且我希望它有一个“后退按钮”。我的应用程序是 TabBar 应用程序,我不希望这个 View 有一个选项卡栏,但我想加载一个以前的 View (我的屏幕截图上的左 View ),带有类似于“推”类型的 segue。我只能创建 push segue 以提供返回左侧 View 的右导航,如果它作为模态视图加载,则 NavigationBar 和 TabBar 消失了。有什么解决方法吗?提前致谢!

Here's my screenshot

最佳答案

只需在带有栏按钮项的新 View 上放置一个导航栏。通过控制从条形按钮项目拖动到 View Controller 的 .h,为条形按钮项目创建一个 Action 。然后,您可以使用委托(delegate)和协议(protocol)方法告诉第一个 Controller 何时按下按钮并让它使用 [self dismissModalViewControllerAnimated:YES];

因此,在您的第二个 View 中创建一个带有完成方法的协议(protocol),如下所示:

@protocol SecondViewControllerDelegate <NSObject>

-(void) done;

@end

@interface SecondViewController : UIViewController {
...
id delegate;
}

...

@property (nonatomic, assign) id<SecondViewControllerDelegate> delegate;

-(IBAction)done:(id)sender; //this will be linked to your nav bar button.
@end

然后在您的按钮操作中调用此命令:

-(IBAction)done:(id)sender{
[self.delegate done];
}

您的第一个 View Controller 需要实现协议(protocol) <SecondViewControllerDelegate>

然后在您的第一个 View Controller 中,在您继续之前将其设置为您的第二个 View Controller 的委托(delegate)。

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([[segue identifier] isEqualToString:@"Second View Modal Segue Identifier"])
{
SecondViewController *viewController = segue.destinationViewController;
viewController.delegate = self;
}
}

最后,在您的第一个 View Controller 中捕获来自委托(delegate)的完成调用:

-(void) done
{
[self dismissModalViewControllerAnimated:YES];
}

我就是这样做的。如果您对协议(protocol)和委托(delegate)没有太多经验,一开始可能会感到困惑,但它对我来说效果很好。

关于iphone - 使用导航栏和后退按钮创建模态视图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10841653/

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