我在ViewController.h中有方法:
- (void)setbannerVisible:(short int)vise;
在ViewController.m中
- (void)setbannerVisible:(short int)vise
{
if (vise == 1) {
[_adView setAlpha:1];
NSLog(@"Show");
} else {
[_adView setAlpha:0];
NSLog(@"Hide");
}
}
但是当我在其他班级写作时:
ViewController *object = [[ViewController alloc] init];
[object setbannerVisible:0];
什么都没发生。
我创建了adView:
- (void)viewDidLoad
{
_adView = [[ADBannerView alloc] initWithFrame:CGRectZero];
_adView.frame = CGRectOffset(_adView.frame, 0, 0);
[self.view addSubview:_adView];
_adView.delegate=self;
[super viewDidLoad];
}
答案 0 :(得分:2)
当您的应用运行此行时:
ViewController *object = [[ViewController alloc] init];
创建了一个新的ViewController
实例。这个实例没有连接任何东西,并且在你调用BannerVisible:
之后会被破坏。
您需要更改代码,以便获取实际具有屏幕视图并在该实例上调用方法的ViewController
的现有实例。如何执行此操作取决于此代码的位置以及如何创建ViewController
的实例并显示其视图。
除此之外:方法名称应以小写字母(bannerVisible:
)开头,并且应该命名以描述它们的作用(setBannerVisibility:
)。