MainMenuViewController

MainMenuViewController

我试图从UIViewController.m上声明的UIButton获取当前标题,然后将其存储在NSString中,然后将其传递给UITableView控制器,以将其用作NSFetchRequest的参数。

MainMenuViewController.h

    - (IBAction)salesMan:(UIButton *)sender;
    @property (nonatomic,strong) NSString *bPerson;


MainMenuViewController.m

    #import "MainMenuViewController.h"
    #import "DisplayResultsViewController.h"

    // more code here...

    - (IBAction)salesMan:(UIButton *)sender {

        self.bPerson = sender.currentTitle;
    }
    @end


DisplayResultsViewController.h

    @property (nonatomic, strong) NSString *sPerson;


DisplayResultsViewController.m

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

        MainMenuViewController *mainMenu = [[MainMenuViewController alloc]init];

        self.sPerson = mainMenu.bPerson;
        NSLog(@" %@", self.sPerson);

    }


问题是它没有传递NSLog返回“ null”的变量

最佳答案

MainMenuViewController * mainMenu = [[MainMenuViewController
  alloc] init];


在上面的调用行中创建了一个新实例,使用默认值allocinit对mainMenu进行了初始化。


  self.sPerson = mainMenu.bPerson;


self.sPerson从默认初始化的mainMenu.bPerson设置一个值!


  NSLog(@“%@”,self.sPerson);


正如预期的那样,由于未设置任何值,将打印null。

可能的解决方案:

您可以使用以下任何一种:

将变量设置为全局,静态,单例,将其作为参数传递,将其作为通知发布。

10-07 19:51