gpt4 book ai didi

ios - 以编程方式在 UISplitViewController 中显示/隐藏主视图

转载 作者:行者123 更新时间:2023-12-01 19:12:53 26 4
gpt4 key购买 nike

我有一个使用 UISplitViewController 的应用程序。在横向时,我们有时希望始终显示主视图,有时希望它像纵向一样自动隐藏。目前可以在应用程序中调整此设置。

这一切都很好,除了一件事。当我更改设置时,我希望自动隐藏设置立即生效,而不仅仅是在我下次旋转设备时(即调用 - splitViewController:shouldHideViewController:inOrientation: 时)。

是否有某种方法(以编程方式)强制 UISplitViewController 弹出/隐藏主视图,以便 SVC 将再次查询 splitViewController:shouldHideViewController:inOrientation: 方法?

任何帮助将不胜感激。

最佳答案

没有直截了当的方法。

一个实用但有点 hacky 的解决方案是设置一个委托(delegate)并记录在显示/隐藏主控时传递给委托(delegate)的 barButtonItem。您可以使用它来触发按钮上的操作。但是,正如我所说,这并不是一个很好的方法(将来可能会中断):

- (void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc
{
_buttonItem = barButtonItem;
// ...
}

- (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)button
{
_buttonItem = nil;
// ...
}

- (void)toggleMasterVisible
{
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[_buttonItem.target performSelector:_buttonItem.action];
#pragma clang diagnostic pop
}

关于ios - 以编程方式在 UISplitViewController 中显示/隐藏主视图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15212370/

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