我正在重新编码我执行的splitview控制器应用程序,因此表视图并不总是在旁边。 我有我的appDelegate,一个ViewController,表视图和另一个名为DetailViewController的视图。 我在appDelegate.h文件中声明了DetailViewController的一个实例
@class SalesMate2ViewController;
@class DetailViewController;
@class Categories;
@interface SalesMate2AppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
SalesMate2ViewController *viewController;
DetailViewController *dvc;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet SalesMate2ViewController *viewController;
@property (nonatomic, retain) DetailViewController *dvc;
@end
在viewController.m中我正在创建dvc的实际实例
dvc = [[DetailViewController alloc] initWithNibName: @"DetailViewController" bundle: nil]];
但是当我尝试在表视图中访问dvc实例时,我正在处理一个新对象,数据不会持久存在或在记录时显示为null。所有内容都编译并运行,但在表视图中访问dvc的代码不起作用。
在viewController和table视图(h和m文件)中,我将dvc包含为@property和@synthesize。那是我做错了吗?但当我把它拿出来时,我会收到警告说dvc是未声明的。
我感觉我正在处理两个dvc实例,但我不知道如何修复它。任何提示?
谢谢, 史蒂夫
答案 0 :(得分:1)
实际上,在你的viewController中,你正在分配一个新的dvc实例,这意味着在一个实例中完成的任何内容都不会在另一个中完成。
在yourSalesMate3ViewController中创建一个attacher方法,并从app delegate中调用它。像这样:
SalesMate2ViewController.h
-(void)attachDetailVC :(DetailViewController*) myDvc;
SalesMate2ViewController.m
-(void)attachDetailVC :(DetailViewController*) myDvc
{
self.dvc = myDvc;
}
从SalesMate2AppDelegate
中调用它self.dvc = [[DetailViewController alloc] initWithNibName: @"DetailViewController" bundle: nil]]
[viewController attachDetailVC:self.dvc];
现在他们都会引用相同的,并且任何一个类都可以操纵它。