ios - 方法被调用但不更新 UI
ios - Method is called but doesn't update UI
在 MainViewController .h
文件中:
-(void)startTrackingParking:(int)hour :(int)minute :(int)second;
在 MainViewController .m
文件中:
-(void)startTrackingParking:(int)hourTrack :(int)minuteTrack :(int)secondTrack {
NSLog(@"%d %d %d",hourTrack,minuteTrack,secondTrack);
//Set buttons alpha to 0
self.extendParking.alpha = 0;
self.bannerCancelButton.alpha = 0;
self.timeLeftLabel.alpha = 0;
}
在我的另一个 class 中,我会这样做:
MainViewController *class = [[MainViewController alloc]init];
[class startTrackingParking:hourTrack :minuteTrack :secondTrack];
出于某种原因 NSlog
调用,但按钮 alpha 未更新?为什么会这样?这是在 classes 和调用方法之间传递数据的错误方式吗?
当你这样做时 -
MainViewController *class = [[MainViewController alloc]init];
[class startTrackingParking:hourTrack :minuteTrack :secondTrack];
您正在分配 MainViewController
的新实例,但不是从 NIB 或 Storyboard 初始化它,因此它没有任何控件。这也意味着它实际上不会显示在屏幕上。你可能有这个视图控制器的一些其他实例正在设置和呈现(大概它是你故事板中的初始视图控制器,因为它被称为 MainViewController
)但那不是这个。
此外,由于这是一个局部变量,一旦该方法退出,它将被丢弃。
当你这样做时:
MainViewController *class = [[MainViewController alloc]init];
[class startTrackingParking:hourTrack :minuteTrack :secondTrack];
您创建了 class MainViewController
的一个实例。与 class 关联的视图未被初始化。
视图控制器延迟加载它们的视图。第一次访问视图 属性 会加载或创建视图控制器的视图。
相反,您可以使用 UIStoryBoard
方法 instantiateViewControllerWithIdentifier:
看看at the docs.
在 MainViewController .h
文件中:
-(void)startTrackingParking:(int)hour :(int)minute :(int)second;
在 MainViewController .m
文件中:
-(void)startTrackingParking:(int)hourTrack :(int)minuteTrack :(int)secondTrack {
NSLog(@"%d %d %d",hourTrack,minuteTrack,secondTrack);
//Set buttons alpha to 0
self.extendParking.alpha = 0;
self.bannerCancelButton.alpha = 0;
self.timeLeftLabel.alpha = 0;
}
在我的另一个 class 中,我会这样做:
MainViewController *class = [[MainViewController alloc]init];
[class startTrackingParking:hourTrack :minuteTrack :secondTrack];
出于某种原因 NSlog
调用,但按钮 alpha 未更新?为什么会这样?这是在 classes 和调用方法之间传递数据的错误方式吗?
当你这样做时 -
MainViewController *class = [[MainViewController alloc]init];
[class startTrackingParking:hourTrack :minuteTrack :secondTrack];
您正在分配 MainViewController
的新实例,但不是从 NIB 或 Storyboard 初始化它,因此它没有任何控件。这也意味着它实际上不会显示在屏幕上。你可能有这个视图控制器的一些其他实例正在设置和呈现(大概它是你故事板中的初始视图控制器,因为它被称为 MainViewController
)但那不是这个。
此外,由于这是一个局部变量,一旦该方法退出,它将被丢弃。
当你这样做时:
MainViewController *class = [[MainViewController alloc]init];
[class startTrackingParking:hourTrack :minuteTrack :secondTrack];
您创建了 class MainViewController
的一个实例。与 class 关联的视图未被初始化。
视图控制器延迟加载它们的视图。第一次访问视图 属性 会加载或创建视图控制器的视图。
相反,您可以使用 UIStoryBoard
方法 instantiateViewControllerWithIdentifier:
看看at the docs.