Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在另一个ViewController中标识ViewController的实例_Iphone_Ios - Fatal编程技术网

Iphone 在另一个ViewController中标识ViewController的实例

Iphone 在另一个ViewController中标识ViewController的实例,iphone,ios,Iphone,Ios,在我的应用程序中,我有两个视图控制器—UIViewController和UITableViewController。 现在,在TableViewController实现中,我需要从UIViewController(属性数组)检索一些数据。它是合成的数组,所以我实际上要做的是,在UITableViewController的实现中,我创建了UIViewController的一个实例,一个数组,并将数组设置为[myUIViewController getTheArray]。我知道这样不行,它只是检索n

在我的应用程序中,我有两个视图控制器—UIViewController和UITableViewController。 现在,在TableViewController实现中,我需要从UIViewController(属性数组)检索一些数据。它是合成的数组,所以我实际上要做的是,在UITableViewController的实现中,我创建了UIViewController的一个实例,一个数组,并将数组设置为[myUIViewController getTheArray]。我知道这样不行,它只是检索nil,但在我的VC中,它实际上充满了数据。我被困在这一点上,我本可以尝试使用performsguewithidentifier方法,但这些视图并不是通过一个segue直接连接到彼此。它们嵌入在选项卡栏视图中,我的ViewController与我的TableViewController完全无关。 你知道如何让它正常工作吗? 谢谢

现在,到B班

@interface classB : UITableViewController
@property (strong ,nonatomic) Playlist* playlistTab;
@end

@implementation classB
@synthesize playlistTab = _playlistTab;

-(void) viewDidLoad{
[super viewDidLoad];
classA *cla = [[classA alloc] init];
// what has to be done here?
_playlistTab = [cla getTheCurrentPlaylist];
}

我希望这能说明问题。

我不是100%肯定我理解你的意思,所以如果我误解了什么,请发表评论。另外,我自己对iOS开发也相当陌生

好的,您有一个带有UIViewController和UITableViewController的选项卡栏控制器。UIViewController的实现有一些数据,UITableViewController需要访问这些数据。你不能仅仅创建一个新的classA。您需要引用您创建并放入选项卡栏的classA实例

您可以做的一件事是让AppDelegate知道UIViewController(即AppDelegate有一个引用UIViewController的属性。然后在UITableViewController中,您可以执行以下操作来访问UIViewController:

MyAppDelegate *appDel = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.myUIViewController.playlist;

听起来像是一个真正简单的应用程序,所以可能使用核心数据之类的东西会过于复杂。上面可以做的另一种方法是,让ClassA实例设置一些值,然后让ClassB从中读取。或者只是创建AppDelegate的一个属性,该属性由UIViewController写入并从选项卡读取le view.

我希望我能理解你试图说的话。你能试着说得更清楚一些吗,也许是用一些代码片段?代码现在在主要的帖子中。你做了什么来调试它?你设置了断点并验证了方法被调用了吗?你验证了在断点处,当调用它时,返回了值不是nil?是的,我实际上使用了NSLog来显示来自_playlatab的一些数据,我得到的是nil。感谢您的回复,但我得到了错误“在类型为“MyAppDelegate*”的对象上找不到属性“myUIViewController”。嗯,您不能只是复制该代码…好的,a)在应用程序中创建一个名为playlist的属性。b) 从classA使用上述代码获取appDel,然后在保存/更改播放列表时设置播放列表。c) 最后从classb中,再次使用上面的代码获取appDel并从播放列表中读取。先生,您是一个救生员!它开始像时钟一样工作了!我只需要使用appDelegate.playlist(没有UIViewController)。非常感谢!
MyAppDelegate *appDel = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.myUIViewController.playlist;