优化视图控制器转换时间

时间:2015-05-27 02:59:50

标签: ios objective-c

我试图了解如何最小化我的视图控制器之间的转换时间。

出于某种原因,段切换到我的一个控制器需要1204.0毫秒。

在仪器中它告诉我这个方法花了964.0毫秒。

 - (void)goToNextContentViewController
{

    self.index = [NSNumber numberWithInt:1];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MusicPlayerQueue" bundle:nil];
    SABaseContentViewController *queueViewController = [storyboard instantiateViewControllerWithIdentifier:@"Queue"];
    queueViewController.rootViewController = self;

    [self.pageViewController setViewControllers:@[queueViewController]
                                      direction:UIPageViewControllerNavigationDirectionForward
                                       animated:YES
                                     completion:^(BOOL finished) {
                                     }];
}

特别是当我选择分段控件时。

- (IBAction)segmentSwitch:(UISegmentedControl *)sender
{
    UISegmentedControl *segmentedControl = (UISegmentedControl *) sender;
    NSInteger selectedSegment = segmentedControl.selectedSegmentIndex;

    if (selectedSegment == 0) {
        [self goToPreviousContentViewController];
    }
    else{
        [self goToNextContentViewController];
    }
}

我正在推送一个tableViewController,它正在加载我从单例填充的数据。任何想法为什么会这样?我的其他段选项卡使用相同的方法以更快的速度加载视图控制器。

最奇怪的是,视图加载速度非常快,仅当我正在推送的控制器中的tableView填充了SingletonArray中的3个或更少的对象时。如果数组为3或更大,它将以1000 + ms的速度加载....

这是我的viewDidLoad

- (void)viewDidLoad {
    [super viewDidLoad];

    self.tableView.delegate = self;
    self.tableView.dataSource = self;

    [self.tableView setEditing:YES];
    self.editSelected = NO;


    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFinishPlaying:) name:@"songEnded" object:nil];
}

0 个答案:

没有答案