こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Xcodeのクラスについてお聞きします。

何らかのクラスをつくり、ViewControllerからクラスを生成して
そのクラス(以下TestClass)のメソッドにアクセスします。
TestClassのメソッドから呼び出し元のViewControllerの変数若しくはメソッドに
アクセスすることはできるのでしょうか?

例)
@interface ViewController : UIViewController{
UIlabel *label; //TestClassから書き込みたい
}
@end

@implementation ViewController
-(void)viewDidLoad{
TestClass *class = [[TestClass alloc] init];
[class labelWrite];//クラス呼び出し
}
- (void)hoge{
//TestClassからここにアクセスしたい
//処理
}
@end

@interface TestClass : NSObject

@end

@implementation TestClass
- (void)labelWrite{
//ここからViewControllerのlabelに書き込みたい
//もしくはViewControllerのhogeメソッドにアクセスしたい
}
@end

投稿日時 - 2012-11-12 19:35:50

QNo.7794450

すぐに回答ほしいです

質問者が選んだベストアンサー

よくわからないのですが、lavelWriteメソッドでUILabelを引数に渡せばいいだけと思うんですが、それじゃまずいんですか?

投稿日時 - 2012-11-12 21:43:29

補足

TestClassのlabelWriteクラスからViewControlerの@propaty化したUIlabelに書き込むといったことをしたいのですがこれは出来ないのでしょうか?
ViewControllerをインポートしてアクセスしてみましたがvc.labelの値を読めませんでした。


@interface ViewController : UIViewController{
UIlabel *label; //TestClassから書き込みたい
}
@property UIlabel *label;
@end

@implementation ViewController
@synthsize label;
-(void)viewDidLoad{
TestClass *class = [[TestClass alloc] init];
[class labelWrite];//クラス呼び出し
}
- (void)hoge{
//TestClassからここにアクセスしたい
//処理
}
@end


#import "ViewController.h"
@interface TestClass : NSObject

@end

@implementation TestClass
- (void)labelWrite{
//ここからViewControllerのlabelに書き込みたい
//もしくはViewControllerのhogeメソッドにアクセスしたい
ViewController *vc = [[ViewController alloc] init];
//ここでvc.labelを読み書きすることはできませんか?
}
@end

投稿日時 - 2012-11-15 08:23:52

お礼

すみません。自己解決しました。
ViewControllerからTestClassに@property id型のselfで渡して
そのid型からViewControllerを生成するとViewController変数にアクセスできました。
ありがとうございました。

投稿日時 - 2012-11-15 08:56:12

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問