gpt4 book ai didi

ios - 通过按下 detailView 的按钮隐藏和取消隐藏 masterView

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:07:09 25 4
gpt4 key购买 nike

我知道很多用户问过这个问题,但我没有找到与我的问题相关的任何答案。

我正在使用 UISplitViewController ,我的应用程序从登录页面开始,所以我在开始时隐藏了 masterView ,在 DetailViewController 一段时间后我使用 Delegate 方法展示了主 viewController

    - (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation NS_AVAILABLE_IOS(5_0)
{
return hideMaster;
}

我已经将 hideMaster 初始化为 NO ,下面是我的 DetailViewController 的 ViewDidLoad()

ViewDidLoad(){

[self.splitViewController.view setNeedsLayout];
self.splitViewController.delegate =Nil;
self.splitViewController.delegate = self;

[self.splitViewController willRotateToInterfaceOrientation:[UIApplication sharedApplication].statusBarOrientation duration:0];
[super viewDidLoad];
}

它工作正常我的主人现在取消隐藏。但是在同一个 detailViewController 上我有一个后退按钮,我将当前 ViewController 弹出到最后一个 viewController 并且我想再次隐藏 masterViewController 我的后退按钮代码在下面。

- (IBAction)back:(id)sender {




hideMaster = NO;

self.splitViewController.delegate =Nil;
self.splitViewController.delegate = self;

[self.splitViewController willRotateToInterfaceOrientation:[UIApplication sharedApplication].statusBarOrientation duration:0];


[self.navigationController popViewControllerAnimated:NO];
}

它弹出 CurrentViewController 到最后一个 ViewController 但它没有隐藏 masterViewController

请帮帮我。

最佳答案

@JohnD,我检查了你的代码。你在弹出最后一个 View Controller 时隐藏了主视图 Controller ,但是你导航到的 View Controller 仍然显示主视图 Controller 。因此你的主视图仍然存在。

按照下面给出的步骤。

1.将 UInavigationControllerdelegate 给你最后一个 singleView Controller 的 ViewController。

2.在最后一个 ViewController(它是 UINavigationController 的委托(delegate))中实现以下委托(delegate)方法。

  - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[self.splitViewController.view setNeedsLayout];
self.splitViewController.delegate =Nil;
self.splitViewController.delegate = self;

[self.splitViewController willRotateToInterfaceOrientation:[UIApplication sharedApplication].statusBarOrientation duration:0];
}

3.现在在下面给出的 lastViewController 中实现 UISplitViewController 的委托(delegate)方法。

    - (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation NS_AVAILABLE_IOS(5_0)
{
return hideMaster;<<===============I'm assuming hide master as a variable of shared object(Singleton).
}

4.现在将您的 - (IBAction)back:(id)sender 方法更改为以下方法。

- (IBAction)back:(id)sender {




hideMaster = Yes;




[self.navigationController popViewControllerAnimated:NO];
}

我希望这能奏效,如果你卡在某个地方请告诉我。

关于ios - 通过按下 detailView 的按钮隐藏和取消隐藏 masterView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21013331/

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