好的,所以我在这里读到了在iPhone项目中声明全局变量的文章,我注意到了这行代码:[[[UIApplication sharedApplication] delegate] myNSString];
。
基本上,我希望用户在另一侧视图的文本字段中输入一些内容,然后将其存储在主视图上访问的变量中。理想情况下,主视图只能从反面视图读取文本字段,但这似乎是不可能的(在过去的几天里,我每天花几个小时在网络和各种书籍上搜索如何做到这一点的答案,似乎没有人能够给出明确的答案)。因此,我使用全局变量来解决这个问题。
我上面打印的代码会允许我这样做吗?在过去的一个小时里,我一直在尝试调整它,但除了No known instance method for selector 'myNSString'
之外,我什么都没想到,我不太确定这在这种情况下意味着什么。
有人能帮帮我吗?我觉得我可以继续尝试不同的东西,但如果没有任何帮助,我只是在黑暗中拍摄。非常感谢。
如果设置使用全局变量,您可能需要考虑使用singleton来保存数据。这里有一个关于单身汉的好教程:http://www.galloway.me.uk/tutorials/singleton-classes/-基本上,它是一个可以在整个应用程序中共享并由不同的控制器访问/修改的类。您可以在上面创建一个属性,从翻转视图写入该属性,然后从主视图访问该属性。
#import "Singleton.h"
@implementation Singleton
@synthesize yourTextField;
#pragma mark Singleton Methods
+ (id)sharedManager {
static Singleton *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] init];
});
return sharedMyManager;
}
- (id)init {
if (self = [super init]) {
yourTextField = @"";
}
return self;
}
你可以通过导入它的头文件和:在代码中调用它
Singleton *mySingleton = [Singleton sharedManager];
mySingleton对象将附加文本字段。可通过以下方式访问:
mySingleton.yourTextField;
.h文件:
#import <Foundation/Foundation.h>
@interface Singleton : NSObject
@property (nonatomic, strong) NSString *yourTextField;
+ (id)sharedManager;
@end
Singleton(记住dispatch_once)、静态变量或NSUserDefaults。这真的取决于你真正需要什么。
如果您正在使用情节串连板,并且只想在VC之间传递数据,那么您可以使用"prepareForSegue"方法(此处描述https://developer.apple.com/library/ios/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/prepareForSegue:sender:)。
Segue具有"destinationController"属性,因此您可以在显示之前设置VC。