[英]Access class variable from another class
我有一個UITabBarController,它管理兩個ViewController。 第一個是允許用戶更改游戲設置的UIViewController。 第二個是運行游戲模擬的GLKViewController。
我試圖使Game ViewController能夠從Settings ViewController中獲取設置。 我在“設置”視圖上有一個表示“速度”的滑塊。
我有對另一個控制器的引用,但是我無法公開正確支持我的Slider的變量。
SecondViewController.h
@interface SecondViewController : UIViewController{
IBOutlet UISlider * mySlider;
}
property (nonatomic,retain) IBOutlet UISlider * mySlider;
@end
SecondViewController.m
- (IBAction) mySliderWasMoved:(id)sender;
@implementation SecondViewController
@synthesize mySlider;
- (IBAction) mySliderWasMoved:(id)sender{
};
ThirdViewController.m
NSArray *tmpVCs = self.parentViewController.tabBarController.viewControllers;
UIViewController *tmpVC = [tmpVCs objectAtIndex:1]; //obtain handle to SecondViewController
//NSNumber *mySpeed = tmpVC.mySlider; //doesn't see mySlider
NSNumber *mySpeed = [tmpVC mySlider]; //doesn't see mySlider
我對此並不陌生,我的項目有很多方面需要學習-所以我現在不嘗試學習如何管理數據。 我只需要知道如何訪問實例變量
正如評論中提到的那樣,
使用NSDefault將值保存在已更改的滑塊上。 在第一次加載應用程序時,您將需要設置一個默認值。
使用Singleton對象存儲值。
我們了解到,引用“您現在不嘗試學習數據持久性。我也不需要體系結構指導。”,但是這里的經驗法則是,您可能將能夠以某種方式或方法訪問實例變量。其他,但我認為擁有最好的方法將使您受益匪淺。
只是我的2美分。
讓其他人受益:我抓住了另一個類的句柄,但沒有將返回類型聲明為正確的類類型。
更換:
UIViewController *tmpVC = [tmpVCs objectAtIndex:1];
帶有:
SecondViewController *tmpVC = [tmpVCs objectAtIndex:1];
現在,我可以訪問特定於SecondViewController的屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.