0

こんにちは、あるView Controllerから別のView Controllerにボタンを介して値を渡すことができないという問題があります。ボタンをクリックすると他のビューがiPhone画面に表示されますが、設定した値は表示されません。これはボタンコードです

   -(IBAction)save:(id)sender 
{ 
nextview *admin = [[nextview alloc]init];
    [self presentModalViewController:admin animated:YES]; 
    if (admin.view)
    { 
admin.fetchname = name.text; 
} 
    [admin release];
}

これは nextview.h ファイルです

#import <UIKit/UIKit.h>
@interface nextview : UIViewController
{
    UILabel *getname;

    NSString *fetchname;
}
@property (nonatomic,retain) IBOutlet NSString *fetchname;
@property (nonatomic,retain) IBOutlet UILabel *getname;

@end

これは nextview.m ファイルです

#import "nextview.h"
#import "ViewController.h"

@implementation nextview
@synthesize getname,fetchname;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {

    }
    return self;
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];

    // Release any cached data, images, etc that aren't in use.
}
#pragma mark - View lifecycle




- (void)viewDidLoad
{


    getname.text = self.fetchname;



    [super viewDidLoad];

}

- (void)viewDidUnload
{
    [super viewDidUnload];

}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end
4

3 に答える 3

1

NSString値を割り当てる前に、viewDidLoadメソッドが呼び出されます。そのため、UIButtonにテキストが表示されません。これを試して :

-(IBAction)save:(id)sender 
{ 
    nextview *admin = [[nextview alloc] init];

    admin.fetchname = name.text; 

    [self presentModalViewController:admin animated:YES];  
    [admin release];
}
于 2012-11-16T15:57:20.247 に答える
0
   -(IBAction)save:(id)sender 
   { 
          nextview *admin = [[nextview alloc]init];
          [self presentModalViewController:admin animated:YES]; 
          if (admin.view)
          { 
                 admin.fetchname = name.text; 
          } 
          [admin release];
   }

名前を割り当てた直後に nextview のインスタンスを解放します。それもうまくいきません。

ところで、getname と fetchname は、プロパティに選択された名前としては非常に不適切です。

于 2012-11-16T15:01:53.733 に答える
0

このようなことができます。次のコードを nextView.h に実装できます。

        NSString *fetchData;

また、これをプロパティ化して合成します

       @property(nonatomic, retain)  NSString *fetchData;  

ボタンを押したコードにこれを実装する

         -(IBAction)save:(id)sender 
         { 
                nextview *admin = [[nextview alloc] init];

                admin.fetchData = name.text; 

                [self presentModalViewController:admin animated:YES];  
                [admin release];
          }
于 2012-11-16T17:07:08.043 に答える