我有一个基于导航的应用程序,我在其中调用Web服务。我已经完成了后台所需的所有工作以吸收Web服务。唯一剩下的就是在Table视图中显示它。 我想要显示的数据存储在Mutable数组中,我可以在控制台中查看数据,这是在app delegate中。我只是想以某种方式将这些数据传递给root,以便我可以在表视图中显示它。 有人可以帮我这个。
答案 0 :(得分:5)
你可以试试这个:
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
cell.textLabel.text = [appDelegate.yourArray objectAtIndex: indexPath.row];
更聪明的做法是在根视图中创建一个NSMutableArray实例,然后从appDelegate数组中获取该源。
答案 1 :(得分:5)
在appDelegate .h文件中
@property(nonatomic,retain)NSMutableArray *array;
在AppDelegate.m文件中
@synthesis array;
在rootViewController文件中
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSLog(@"array is %@",appDelegate.array);
答案 2 :(得分:0)
我可能会改变您的设计方法并创建一个获取和保存数据的控制器。您正在将AppDelegate
耦合到您的控制器并使其负责数据检索。这不一定适合iOS中的MVC方法。
通过创建一个负责数据检索的数据对象类(例如,调用/缓存Web服务数据),可以使代码更加可重用,并且更容易被程序部分使用。
答案 3 :(得分:0)
在Appdelgate.h中创建你的字符串
@property (strong, nonatomic) NSString *deviceToken;
+ (AppDelegate *)getAppDelegate;
Appdelegate.m工具
+ (AppDelegate *)getAppDelegate{
static AppDelegate* mAppDelegate = nil;
if(!mAppDelegate)
{
UIApplication *lApplication = [UIApplication sharedApplication];
if([lApplication.delegate isKindOfClass: [AppDelegate class]])
{
mAppDelegate = (AppDelegate *)lApplication.delegate;
}
}
return mAppDelegate;
}
并将此字符串访问到您需要的位置,为appdelegate创建变量
AppDelegate *mLoginAppDelegate;
在viewdidload中写下这些行
if(!mLoginAppDelegate)
mLoginAppDelegate = [AppDelegate getAppDelegate];
NSLog(@"Device Token: %@", mLoginAppDelegate.deviceToken);