如何在不使用segue的情况下设置另一个ViewController的属性?

时间:2015-03-27 19:38:15

标签: ios objective-c

从我的MCSettingsFormViewController开始,我想设置MatchCenterViewController的{​​{1}} BOOL属性,但不使用segue。

我已导入didAddNewItem,其中包含该属性:

MatchCenterViewController.h

但是,当我尝试像这样设置它时:@property (assign) BOOL didAddNewItem;,它说“在'MatchCenterViewController'类型的对象上找不到属性didAddNewItem”。

我认为这是因为我没有定义MatchCenterViewController是什么。如果是这样,我该怎么做这个属性,所以它正确设置属性?

修改

MatchCenterViewController.h:

MatchCenterViewController.didAddNewItem = YES;

MCSettingsFormViewController.h:

#import <UIKit/UIKit.h>
#import <Parse/Parse.h>
#import "AsyncImageView.h"
#import "SearchViewController.h"
#import "WebViewController.h"
#import "WSCoachMarksView.h"

#import "SLExpandableTableView.h"



@interface MatchCenterViewController : UIViewController <UITableViewDataSource>

@property (strong, nonatomic) NSString *itemSearch;
@property (strong, nonatomic) NSString *itemPriority;
//@property (strong, nonatomic) IBOutlet UITextField *itemSearch;
@property (nonatomic, strong) NSArray *imageURLs;
@property (strong, nonatomic) NSString *matchingCategoryCondition;
@property (strong, nonatomic) NSString *matchingCategoryLocation;
@property (strong, nonatomic) NSNumber *matchingCategoryMaxPrice;
@property (strong, nonatomic) NSNumber *matchingCategoryMinPrice;
@property (strong, nonatomic) NSNumber *matchingCategoryId;

@property (strong, nonatomic) NSArray *matchCenterArray;
@property (strong, nonatomic) NSString *searchTerm;
@property (strong, nonatomic) NSString *itemURL;
@property (assign) NSInteger expandedSection;
@property (assign) NSInteger rowCount;
@property (assign) BOOL didAddNewItem;
@property (assign) BOOL results;

@property (strong, nonatomic) IBOutlet UIButton *editButton;


@property (weak, nonatomic) IBOutlet UIButton *moreButton;
@property (strong) NSMutableSet *expandedSections;

@end

@interface MoreButton : UIButton
@property (assign) NSInteger expandedSection;
@property (assign) NSInteger sectionIndex;
@end

3 个答案:

答案 0 :(得分:0)

您需要使用MatchCenterViewController的实例而不是类的名称。据推测,在你的应用程序的某个地方有一个MatchCenterViewController对象的引用。您可以访问该引用,也可以采用不同的方式让它了解更改。

例如,如果您的两个控制器没有相互连接,您可以在MCSettingsFormViewController中发布通知,并在MatchCenterViewController中对其作出反应。

对于更具体的建议,我需要知道如何创建和呈现两个控制器。

答案 1 :(得分:0)

当您实例化MatchCenterViewController时,您可以将其设置为MCSettingsFormViewController委托。这样,MatchCenterViewController将自己定义为MatchCenterViewController要编辑的类的实例化版本。

以下是代表们的基本教程:http://www.tutorialspoint.com/ios/ios_delegates.htm

答案 2 :(得分:0)

因此,根据您的标题,看起来您的MCSettingsFormViewController没有MatchCenterViewController类型的属性,或者该属性是私有的。

在前一种情况下,您需要使用MatchCenterViewController类型向MCSettingsFormViewController添加属性。

在后者中,您没有初始化MatchCenterViewController属性。

首先,请确保您拥有该公共/私人财产。

然后,当您第一次创建并显示SettingsFormViewController时,请将此属性设置为MatchCenterViewController实例。现在,您的SettingsForm引用了您正在寻找的正确实例。

此时,您可以在MatchCenter上设置属性