Вызов метода из другого класса - PullRequest
0 голосов
/ 06 июня 2011

Для начала я хотел бы извиниться за мой английский:)

У меня есть FirstViewController, который содержит scrollView. Это scrolView с включенной подкачкой и имеет 2 страницы с 2 различными контроллерами представления. От одного из контроллеров представления, касаясь кнопки, третий контроллер представления появляется как модальное представление. Я вызываю метод в FirstViewController, который должен отключить прокрутку и скрыть две метки, которых нет в scrollView. Метод выполняется, но пользовательский интерфейс не изменяется, прокрутка все еще включена, а надписи все еще видны.

Теперь немного кода:

Это часть FirstViewController.h (не весь код):

@interface FirstViewController : UIViewController <UIScrollViewDelegate> {

    IBOutlet UIScrollView *scrollView;
    IBOutlet UILabel *label1;
    IBOutlet UILabel *label2;

}

@property (nonatomic, retain) UILabel *label1;
@property (nonatomic, retain) UILabel *label2;
@property (nonatomic, retain) UIScrollView *scrollView;

-(void)prepareToModal;


@end

Теперь это -(void)prepareToModal; реализация:

-(void)prepareToModal {
    [label1 setHidden:YES];
    [label2 setHidden:YES];
    scrollView.scrollEnabled = NO;
}

Итак, с одного из контроллеров представления, который содержится в scrollView, я вызываю prepareToModal

Ранее:

#import "FirstViewController.h"

Далее:

FirstViewController *vc = [[FirstViewController alloc] init];
[vc prepareToModal];
[vc release];

Так вот и все. Я установил точку останова в prepareToModal, и она перестала выполняться. Метод вызывается, но на экране ничего не меняется ...

Что я делаю не так? Как это сделать правильно?

Обновление

Я решил эту проблему.

Когда я представляю этот модальный вид, я написал это:

ThirdViewController *tvc = [[ThirdViewControler alloc] init];
tvc.delegate  = self;

UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:tvc];

[self presentModalViewController:nc animated:YES];

[tvc release];
[nc release];

Теперь, за [self presentModalViewController:nc animated:YES]; я пишу это:

[[[[UIApplication sharedApplication].windows objectAtIndex:0] rootViewController] presentModalViewController:nc animated:YES];

И это работает очень хорошо, мне не нужен метод -(void)prepareToModal;

Большое спасибо:)

1 Ответ

1 голос
/ 06 июня 2011

Убедитесь, что вы подключили свои IBOutlets в Интерфейсном Разработчике.

...