gpt4 book ai didi

ios - SWReveal - 在应用程序启动时更改 frontviewcontroller

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

我正在使用 SWRevealViewController在我的应用程序中实现侧边菜单。在 Storyboard 中,我设置了 sw_front继续。这个 segue 在每次启动应用程序时加载 MainView。现在我想给用户改变第一个显示的 View Controller 的可能性。

我怎样才能做到这一点?我知道有一个属性setFrontViewController:但是在应用程序启动期间我应该在哪里使用它来加载前端?

我不能在 viewDidLoad 中使用它的frontViewController我在 Storyboard 中设置。这不可能是一个解决方案,所以我需要在每个 View Controller 中执行它来抓取并检查“应该首先加载另一个 View Controller 或frontViewController

最佳答案

我已经了解您有什么问题以及您想做什么,我也有同样的事情要做,所以我所做的就是在我的代码中提到的 swrevealviewcontroller 中创建了自定义 segue。
并且修改了perform和loadstoryboardcontroller这两个方法,在我的代码中也可以看到。
它也一定会为您工作。

祝您编码愉快。

我的代码如下:

我已经这样做了,您需要更改的代码如下。

- (void)loadStoryboardControllers
{
if ( self.storyboard && _rearViewController == nil )
{
//Try each segue separately so it doesn't break prematurely if either Rear or Right views are not used.
@try
{
[self performSegueWithIdentifier:SWSegueRearIdentifier sender:nil];
}
@catch(NSException *exception) {}

@try
{
[self performSegueWithIdentifier:SWSegueFrontIdentifier sender:nil];
}
@catch(NSException *exception) {}

@try
{
[self performSegueWithIdentifier:SWSegueRightIdentifier sender:nil];
}
@catch(NSException *exception) {}
@try
{
[self performSegueWithIdentifier:SWSegueCustomIdentifier sender:nil];
}
@catch(NSException *exception) {}
}
}
#pragma mark - SWRevealViewControllerSegueSetController segue identifiers

NSString * const SWSegueRearIdentifier = @"sw_rear";
NSString * const SWSegueFrontIdentifier = @"sw_front";
NSString * const SWSegueRightIdentifier = @"sw_right";
NSString * const SWSegueCustomIdentifier = @"sw_custom";

#pragma mark - SWRevealViewControllerSegueSetController class

@implementation SWRevealViewControllerSegueSetController

- (void)perform
{
SWRevealControllerOperation operation = SWRevealControllerOperationNone;

NSString *identifier = self.identifier;
SWRevealViewController *rvc = self.sourceViewController;
UIViewController *dvc = self.destinationViewController;

if ( [identifier isEqualToString:SWSegueFrontIdentifier] )
operation = SWRevealControllerOperationReplaceFrontController;

else if ( [identifier isEqualToString:SWSegueRearIdentifier] )
operation = SWRevealControllerOperationReplaceRearController;

else if ( [identifier isEqualToString:SWSegueRightIdentifier] )
operation = SWRevealControllerOperationReplaceRightController;

else if ( [identifier isEqualToString:SWSegueCustomIdentifier])//your conditional segue
operation = SWRevealControllerOperationReplaceFrontController;

if ( operation != SWRevealControllerOperationNone )
[rvc _performTransitionOperation:operation withViewController:dvc animated:NO];
}

关于ios - SWReveal - 在应用程序启动时更改 frontviewcontroller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29146901/

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