Проблема StackScrollView с идентификатором делегата MBProgressHUD - PullRequest
0 голосов
/ 10 марта 2012

У меня есть приложение просмотра стека прокрутки (например, приложения Twitter и Facebook), использующее PSStackedView

Создает представление с этим стеком:

AppDelegate

// set root controller as stack controller
MenuRootController *menuController = [[MenuRootController alloc] init];
self.stackController = [[PSStackedViewController alloc] initWithRootViewController:menuController];
self.window.rootViewController = self.stackController;
[self.window makeKeyAndVisible];

Root Nav контроллер имеет UItable, при нажатии на ячейку загружается следующий вид

// Load Home Stories table

PSStackedViewController *stackController = XAppDelegate.stackController;
UIViewController*viewController = nil;

while ([stackController.viewControllers count]) {
    //NSLog(@"launchStories");
    [stackController popViewControllerAnimated:YES];
}

viewController = [[TestView alloc] initWithNibName:@"TestView" bundle:nil];     

((TestView *)viewController).indexNumber = [stackController.viewControllers count];
viewController.view.width = roundf((self.view.width - stackController.leftInset)/2);

if (viewController) {
    [XAppDelegate.stackController pushViewController:viewController fromViewController:nil animated:YES];
}

В этом представлении я хочу использовать MBProgressHUD (https://github.com/matej/MBProgressHUD/) для отображения красивого загружаемого XML-сообщения

    HUD = [[MBProgressHUD alloc] initWithView:self.view.window];
    [self.view.window addSubview:HUD];

    HUD.delegate =  self ;
    HUD.labelText = @"Loading";

    [HUD showWhileExecuting:@selector(myTask) onTarget:self withObject:nil animated:YES];

Но

HUD.delegate =  self ;

выдает предупреждение и приложение вылетает

Assigning to 'id<MBProgressHUDDelegate>' from incompatible type 'TestView *'

Я пробовал все виды комбинаций, чтобы попытаться найти контроллер тока, но безрезультатно, я могу найти ширину контроллера тока, например, с помощью

PSStackedViewController *stackController = XAppDelegate.stackController;
NSLog(@"%f",stackController.view.width);

который печатает 748.000000. Но я не могу понять, каким должно быть «я».

Есть идеи?

1 Ответ

1 голос
/ 11 марта 2012

TestView должен реализовать протокол MBProgressHUDDelegate. В TestView.h это выглядит примерно так:

@interface TestView : ClassYouInheritFrom <MBProgressHUDDelegate>
...