从另一个类调用方法

时间:2011-06-06 12:28:08

标签: iphone objective-c class object methods

首先,我想为我的英语道歉:)

我有FirstViewController,它包含scrollView。这是带有启用分页的scrolView,有2个页面,带有2个不同的视图控制器。通过触摸按钮从其中一个视图控制器,第三个视图控制器看起来像一个模态视图。我在FirstViewController中调用一个方法,它必须禁用滚动并隐藏两个不包含在scrollView中的标签。 方法正在执行,但UI未更改,滚动仍然启用且标签仍然可见。

现在有点代码:

这是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 个答案:

答案 0 :(得分:1)

确保您已在Interface Builder中连接了IBOutlets。