首先,我想为我的英语道歉:)
我有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;
非常感谢:)
答案 0 :(得分:1)
确保您已在Interface Builder中连接了IBOutlets。