Ios6 UINavigationBar标题视图中的iOS 6和UIActivityIndicator存在问题

Ios6 UINavigationBar标题视图中的iOS 6和UIActivityIndicator存在问题,ios6,uiactivityindicatorview,uinavigationitem,Ios6,Uiactivityindicatorview,Uinavigationitem,从iOS 6开始就有问题了。我真的不知道是什么改变了会导致这种行为。这在过去的5年里一直工作得很好。现在,活动指标没有及时或根本没有出现。任何帮助都将不胜感激 -(void)myMethod { UIView *currentTitleView = [[self navigationItem] titleView]; // Create an activity indicator and start it spinning in the nav bar UIActiv

从iOS 6开始就有问题了。我真的不知道是什么改变了会导致这种行为。这在过去的5年里一直工作得很好。现在,活动指标没有及时或根本没有出现。任何帮助都将不胜感激

-(void)myMethod
{
    UIView *currentTitleView = [[self navigationItem] titleView];


    // Create an activity indicator and start it spinning in the nav bar
    UIActivityIndicatorView *aiview = [[UIActivityIndicatorView alloc]     initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];

    [[self navigationItem] setTitleView:aiview];
    [aiview startAnimating];

    // Start of Block code
    void (^block)(arg1, arg2) =
    ^(arg1, arg2)
    {
       block code;
       [aiview stopAnimating];
       [[self navigationItem] setTitleView:currentTitleView];
    };
// End of Block code




}

听起来像是从后台线程调用了
myMethod
。一般来说,与UIKit元素(包括
UIActivityIndicatorView
)的所有交互都应始终在主线程上完成。尝试使用GCD将UI代码移动到主队列(也称为主线程)


问题可能不在于ActivityIndicator方法本身,而在于调用它的任何东西。您是否尝试记录您的AI方法,以确保它被可靠地调用?
-(void)myMethod {
    dispatch_async(dispatch_get_main_queue(), ^{
        UIView *currentTitleView = [[self navigationItem] titleView];

        // Create an activity indicator and start it spinning in the nav bar
        UIActivityIndicatorView *aiview = [[UIActivityIndicatorView alloc]     initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];

        [[self navigationItem] setTitleView:aiview];
        [aiview startAnimating];
    });

    // Start of Block code
    void (^block)(arg1, arg2) =
    ^(arg1, arg2)
    {
       block code;

        dispatch_async(dispatch_get_main_queue(), ^{
           [aiview stopAnimating];
           [[self navigationItem] setTitleView:currentTitleView];
        });
    };
// End of Block code
}