1

プログラムに UIActionSheet を含めました。A と B という 2 つのボタンが含まれています。ユーザーが A ボタンをクリックすると、別のビューに移動します。そのビューには、3 つのテキスト フィールドが含まれています。そのため、mainviewcontroller では、これらのテキスト フィールドに値を割り当てています。以下にコードを貼り付けます:-

MainViewController.m 内

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex: (NSInteger)buttonIndex 
  {
         AnotherViewController *A = [[AnotherViewController alloc] init];

          if (buttonIndex == 1) 
          {

              A.newtask = name;
              A.newsubtask = sub1;
              A.newduedate = dateName;
              A.newtime = timeName;


     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];                                                                    

     UpdateViewController   *viewController =[storyboard instantiateViewControllerWithIdentifier:@"update"];

     [self presentViewController:viewController animated:YES completion:NULL];


          }
   }

そしてAnotherViewcontroller.mで

 - (void)viewDidLoad
   {

              task_update.text = newtask;
              subtask_update.text =newsubtask;
              duedate_update.text = newduedate;
              time_update.text = newtime;

           NSLog(@"The task is :%@",newtask);
              [super viewDidLoad];
// Do any additional setup after loading the view.
    }

問題は、newtask で null 値を取得していることです。どなたか解決策を教えてください。:(

4

1 に答える 1

1

AppDelegate クラスでグローバル変数を取得します。AppDelegate .h のように

NSString *newtask,*newsubtask,*newduedate,*newtime;

@property(nonatomic,retain)NSString *newtask,*newsubtask,*newduedate,*newtime;

AppDelegate。メートル

@synthesize newtask,newsubtask,newduedate,newtime;

MainViewController.h

「AppDelegate」をインポート

{
AppDelegate *appDelegate;
}

MainViewController.m

    (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex: (NSInteger)buttonIndex 
      {
appDelegate=(AppDelegate *)[[UIApplication sharedApplication]delegate];
             AnotherViewController *A = [[AnotherViewController alloc] init];
    
              if (buttonIndex == 1) 
              {
    
                  appDelegate.newtask = name;
                  appDelegate.newsubtask = sub1;
                  appDelegate.newduedate = dateName;
                  appDelegate.newtime = timeName;
    
    
         UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];                                                                    
    
         UpdateViewController   *viewController =[storyboard instantiateViewControllerWithIdentifier:@"update"];
    
         [self presentViewController:viewController animated:YES completion:NULL];
    
    
              }
       }

AnotherViewcontroller.h

「AppDelegate」をインポート

{
AppDelegate *appDelegate;
}

AnotherViewcontroller.m

- (void)viewDidLoad
   {
    appDelegate=(AppDelegate *)[[UIApplication sharedApplication]delegate];

              task_update.text = appDelegate.newtask;
              subtask_update.text =appDelegate.newsubtask;
              duedate_update.text = appDelegate.newduedate;
              time_update.text = appDelegate.newtime;

           NSLog(@"The task is :%@",newtask);
              [super viewDidLoad];
// Do any additional setup after loading the view.
    }
于 2012-09-12T10:56:50.170 に答える