我试图从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];
在上面的调用行中创建了一个新实例,使用默认值alloc
和init
对mainMenu进行了初始化。
self.sPerson = mainMenu.bPerson;self.sPerson
从默认初始化的mainMenu.bPerson
设置一个值!
NSLog(@“%@”,self.sPerson);
正如预期的那样,由于未设置任何值,将打印null。
可能的解决方案:
您可以使用以下任何一种:
将变量设置为全局,静态,单例,将其作为参数传递,将其作为通知发布。