我有一个TableViewController
,它被分成TabBarViewController
。
我知道如何通过segue传递我的对象,但不知道如TabBarViewController
和它的标签共享之类的关系。
我该怎么做? 从TabView有没有办法访问TabBarViewControllers成员变量?
更新
到目前为止,这就是我解决问题的方法,但我并不是疯狂地使用AppDelegate来做这件事......
将以下内容添加到WhateverYouNamedYourAppDelegate.h
@class myObjectIWantToPass;
@property (strong, nonatomic) myObjectIWantToPass *object;
然后将以下内容添加到您要传递的数据的View Class文件中。如果您计划将对象传递到另一个视图,我将假设您已知道如何在此文件中设置对象。
WhateverYouNamedYourAppDelegate *appDelegate =
(WhateverYouNamedYourAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.object = object;
然后你做了一些类似的工作,从目标View Class中的appDelegate中检索对象。
WhateverYouNamedYourAppDelegate *appDelegate = (WhateverYouNamedYourAppDelegate *)[[UIApplication sharedApplication] delegate];
object = appDelegate.object;
答案 0 :(得分:1)
您可以创建单例类,以便所有控制器都可以访问Singleton中的那些变量。见见下面的代码
SingletonClass.h
@interface SingletonClass : NSObject {
NSString *someString;
}
@property(nonatomic, retain)NSString *someString;
+(id)shared;
@end
SingletonClass.m
#import "SingletonClass.h"
static SingletonClass *aShared;
@implementation LibShared
@synthesize someString;
+(id)shared
{
if (aShared == nil) {
aShared = [[self alloc] init];
}
return aShared;
}
-(id)init
{
if (self = [super init]) {
}
}
-(void)dealloc
{
[someString releease];
[super dealloc];
}
在标签栏中,您可以在SingletonClass上设置变量:
[[SingletonClass shared] setSomeString:@"Value_Set"];
在tableViewController上,您可以获取SingletonClass上someString变量的属性:
NSString *string = [[SingletonClass shared] someString];
答案 1 :(得分:0)
这里不需要单身人士模式。相反,您可以像正常一样在- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
中向前发送数据对象,您只需要在UITabBarController
的{{1}}属性中找到正确的viewController。
viewControllers