私のアプリには、int antalratt
そのビューの正解数である という変数があります。次に、その変数を次のビューに渡したいと思います。ここで、表示される正解の数を取得したいと考えています! ただし、ラベル テキストに整数を取得する方法は知っています。
はint antalratt
に書かれていfirstviewcontroller.m
ますが、 で使用できるように「グローバル」にするにはどうすればよいsecondviewcontroller
ですか?
前もって感謝します!
私のアプリには、int antalratt
そのビューの正解数である という変数があります。次に、その変数を次のビューに渡したいと思います。ここで、表示される正解の数を取得したいと考えています! ただし、ラベル テキストに整数を取得する方法は知っています。
はint antalratt
に書かれていfirstviewcontroller.m
ますが、 で使用できるように「グローバル」にするにはどうすればよいsecondviewcontroller
ですか?
前もって感謝します!
方法1:
RootViewController
-(IBAction)nextPage{
int antalratt = 12; // Value to be transfered
FirstViewController * fvc = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
fvc.answer = antalratt;
[self presentModalViewController:fvc animated:YES];
[fvc release];
}
FirstViewController
@interface FirstViewController : UIViewController
{
int answer;
}
@property(nonatomic,assign) int answer;
@implementation FirstViewController
@synthesize answer;
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"%d",answer); // //displays answer on log
}
@end
方法2(AppDelegate)
AppDelegate
@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
int antalratt;
}
@property(nonatomic ,assign) int antalratt;
RootViewController
-(IBAction)nextPage{
int antalratt = 12; // Value to be transfered
AppDelegate * delegate = [[UIApplication sharedApplication] delegate];
delegate.antalratt = antalratt;
FirstViewController * fvc = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
[self presentModalViewController:fvc animated:YES];
[fvc release];
}
FirstViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
AppDelegate * delegate = [[UIApplication sharedApplication] delegate];
NSLog(@"%d",delegate.antalratt); //displays answer on log
}
方法3(NSUserDefaults)
RootViewController
-(IBAction)nextPage{
int antalratt = 12; // Value to be transfered
[[NSUserDefaults standardUserDefaults] setInteger:antalratt forKey:@"answer"];
FirstViewController * fvc = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
[self presentModalViewController:fvc animated:YES];
[fvc release]; }
FirstViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
int ans = [[[NSUserDefaults standardUserDefaults] objectForKey:@"answer"] intValue];
NSLog(@"%d",ans); //displays answer on log
}
filename *detailViewController = [[filename alloc] initWithNibName:@"filename" bundle:nil];
detailViewController.audio=@"yourData";
[self presentModalViewController:detailViewController animated:YES];
[detailViewController release];
filename.h で宣言
NSString *audio;
@property(nonatomic,retain) NSString *audio;
および filename.m
@synthesize audio;
-(void) ViewDidLoad
{
NSLog(@"Audio = %@",audio); // if ur variable is integer declare %d in nslog.
}
それで全部です
secondviewcontroller.h のパブリック インターフェイスで変数を作成します。
@property (nonatomic, strong) NSNumber *correctAnswers;
それを .m で合成し、次に antalratt の値を firstviewcontroller で渡しますsecondviewcontroller.correctAnswers = [NSNumber numberWithInt:antalratt];
セカンドビューコントローラーへ。次に、ラベルテキストを設定します
// view1.h
@interface view1 : UIView{
NSString *passingVariable;
}
@property (nonatomic, strong) NSString *passingVariable;
@end
//
view1.m
@synthsize passingVariable;
@implementation view1
@end
//別のビューで
view2.m
#import "view1.h"
@implementation view2
-(IBAction)changeview
{
view1 *myview = [[view1 alloc]init];
myview.passingVariable = [NSString stringWithString:@"Hello Variable"];
[self.navigationController pushViewController:myview animated:YES];
}
@end