簡體   English   中英

從另一個類訪問類變量

[英]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

我對此並不陌生,我的項目有很多方面需要學習-所以我現在不嘗試學習如何管理數據。 我只需要知道如何訪問實例變量

正如評論中提到的那樣,

  1. 使用NSDefault將值保存在已更改的滑塊上。 在第一次加載應用程序時,您將需要設置一個默認值。

  2. 使用Singleton對象存儲值。

我們了解到,引用“您現在不嘗試學習數據持久性。我也不需要體系結構指導。”,但是這里的經驗法則是,您可能將能夠以某種方式或方法訪問實例變量。其他,但我認為擁有最好的方法將使您受益匪淺。

只是我的2美分。

讓其他人受益:我抓住了另一個類的句柄,但沒有將返回類型聲明為正確的類類型。

更換:

UIViewController *tmpVC = [tmpVCs objectAtIndex:1]; 

帶有:

SecondViewController *tmpVC = [tmpVCs objectAtIndex:1]; 

現在,我可以訪問特定於SecondViewController的屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM