2014-02-24 24 views
1

我需要更新从视图控制器的进度条让我们叫他A位于视图控制器B,更新完成时,我开始从B的NSULRCONNECTION,将访问方法DidSendBodyData定义视图控制器A在该方法中有进度条应该更新,这是我在视图控制器B的代码:得到一个参考UIVIEW CONTROLLER

UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]]; 
UINavigationController * myStoryboardInitialViewController = [storyboard instantiateInitialViewController]; 

HomeViewController *rootViewController = [myStoryboardInitialViewController.viewControllers objectAtIndex:0]; 

NSURLConnection * connection = [[NSURLConnection alloc] 
           initWithRequest:request 
           delegate:rootViewController startImmediately:NO]; 

这是在B类中定义的代码,我需要参考视图控制器A,其是这里rootViewController 但上面做的是不正确的,因为它创建视图控制器的另一个对象,而不是使用现有的对象,这意味着一个新的进展将创建栏和更新,这不是我想要的,我需要更新视图控制器A

这是我在视图控制器A码的现有:

-(void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite{ 
(float)totalBytesWritten ,(float)totalBytesExpectedToWrite); 
[progress setProgress:((float)(totalBytesWritten))/totalBytesExpectedToWrite]; 
} 

建立连接时在视图控制器A中调用方法didsendBodyData,并且应该更新进度条。

如何在不创建新视图控制器的情况下获得对视图控制器A的引用?

在此先感谢您的帮助。

回答

0

你不想要求另一个类的参考 - 你想代表更新进度的工作。

创建一个protocol并让您的第一个控制器实现它。确保你a)有一个代表和b)你的代表响应你的进度更新,你是金牌