gpt4 book ai didi

iOS segue 慢 - 即使没有对 destinationViewController 进行任何处理

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

我有一个按钮正在连接到一个新的 viewController。当我按下按钮时,在新 View Controller 出现之前会有 3-4 秒的可见延迟。我读过关于 stackoverflow 的其他问题,通常问题出在 destinationViewController 或 sourceViewController 上的代码(尚未完成)。在我的例子中,如果我在 destinationViewController 的 viewDidLoad 上设置断点,延迟甚至会在代码执行之前发生。

此外,我的代码不会执行任何需要超过 1 毫秒的操作。

这是我的 destinationViewController 的代码。我在 prepareForSegue... 方法中什么都没有。

如何消除这种延迟?谢谢!

如果您需要其他东西来诊断此问题,请随时询问,谢谢。

#import "ViewSettingsViewController.h"

@interface ViewSettingsViewController ()

@end

@implementation ViewSettingsViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.

if ([HelperMethods getUserPreference:@"notificationTime"]==nil) {
NSDate * now = [[NSDate alloc] init];
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents * comps = [cal components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:now];
[comps setHour:19];
[comps setMinute:0];
[comps setSecond:0];
NSDate * date = [cal dateFromComponents:comps];
[self.timePicker setDate:date animated:TRUE];
} else {
[self.timePicker setDate:[HelperMethods getUserPreference:@"notificationTime"]];
}
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/

-(void) viewWillDisappear:(BOOL)animated {
if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) {
// back button was pressed. We know this is true because self is no longer
// in the navigation stack.
[HelperMethods setUserPreference:self.timePicker.date forKey:@"notificationTime"];

}
[super viewWillDisappear:animated];
}

@end

最佳答案

想通了。原来滞后时间是在这一行:

[super viewDidLoad] 

这是从 destinationViewController viewDidLoad 方法调用的。那是重新加载每次启动 segue 的 View ,这是一个繁重的方法。我评论了那条线并解决了这个问题。不知道为什么我每次都想重新加载 super View ...

关于iOS segue 慢 - 即使没有对 destinationViewController 进行任何处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28419849/

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