获取对UIVIEW CONTROLLER的引用

时间:2014-02-24 19:33:48

标签: ios objective-c xcode uiviewcontroller uiprogressview

我需要从视图控制器更新进度条让我们调用它位于视图控制器B中,当我从B启动NSULRCONNECTION时将完成更新,这将访问视图控制器中定义的方法DidSendBodyData在这种方法中,有一个应该更新的进度条,这是我在视图控制器B中的代码:

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的引用?!

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您不想要求引用另一个类 - 您希望委派更新进度的工作。

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