나는 Luis Es를 좋아한다. pinoza의 접근 방식은 질문에 대답하지 않습니다 그 자체는입니다.
당신이 당신의 App Delegate를위한 rootViewController 인 UINavigationController 안에 중첩 된 UITableViewController 내부의 메쏘드를 호출하기를 원한다면.먼저 우리는있는 UITableViewController와있는 navigationController (또는 서브 클래스)를 만들 : 당신의있는 UITableViewController (또는 서브 클래스)에서 다음
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
CustomTableViewController *nuTableVC = [[CustomTableViewController alloc] initWithStyle:UITableViewStylePlain];
UINavigationController *nuNavController = [[UINavigationController alloc] initWithRootViewController:nuTableVC];
self.window.rootViewController = nuNavController;
[self.window makeKeyAndVisible];
return YES;
}
당신에게 설치를 당신이 질문 단지처럼 refreshcontrol :
- (void)viewDidLoad {
[super viewDidLoad];
// Add Refresh Control
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:[[UIApplication sharedApplication] delegate]
action:@selector(forceDownload)
forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
}
마지막으로 액세스 할 수있는 UITableViewController 인스턴스가 실제로 원하는 클래스인지 확인해야합니다. 여기에 (forceDownload) 애플리케이션 위임 :
에 만든 메서드에 대한 구현입니다.3210
- (void)forceDownload {
NSLog(@"force download method in App Delegate");
UINavigationController *someNavController = (UINavigationController*)[_window rootViewController];
UIViewController *vcInNavController = [[someNavController viewControllers] objectAtIndex:0];
if ([vcInNavController isKindOfClass:[CustomTableViewController class]]) {
NSLog(@"it is my custom Table VC");
NSLog(@"here we can stop the refresh control, or whatever we want");
CustomTableViewController *customTableVC = (CustomTableViewController *)vcInNavController;
[customTableVC.refreshControl performSelector:@selector(endRefreshing)
withObject:nil
afterDelay:1.0f];
}
}
나는 더 간단하기 때문에 개인적으로 NSNotificationCenter를 선호하지만, 원래 계획했던대로 개체에 액세스 할 수 없다는 것을 의미하지는 않습니다.
(예제 코드에서 요청할 경우).
감사합니다.
이것은 끔찍한 생각처럼 들립니다. 정확히 당신이 성취하고자하는 것은 무엇입니까? –
GPS 위치를 가져 와서 json 파일을 다운로드하여 앱 대리인의 uitableview를 채 웁니다. 앱이 다운로드 할 때 활동 표시기가 맨 위에 애니메이션으로 나타나면 refreshControl이 일치하는지 확인하고 싶었습니다. – skeg0