0

私のアプリには、int antalrattそのビューの正解数である という変数があります。次に、その変数を次のビューに渡したいと思います。ここで、表示される正解の数を取得したいと考えています! ただし、ラベル テキストに整数を取得する方法は知っています。

int antalrattに書かれていfirstviewcontroller.mますが、 で使用できるように「グローバル」にするにはどうすればよいsecondviewcontrollerですか?

前もって感謝します!

4

4 に答える 4

1

方法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
}
于 2012-04-21T11:54:19.637 に答える
1
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.
 }

それで全部です

于 2012-04-21T10:45:21.843 に答える
1

secondviewcontroller.h のパブリック インターフェイスで変数を作成します。

@property (nonatomic, strong) NSNumber *correctAnswers;

それを .m で合成し、次に antalratt の値を firstviewcontroller で渡しますsecondviewcontroller.correctAnswers = [NSNumber numberWithInt:antalratt];

セカンドビューコントローラーへ。次に、ラベルテキストを設定します

于 2012-04-21T10:50:11.330 に答える
0

// 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
于 2012-04-21T11:36:38.180 に答える