UIApplication sharedApplication帮助?

我试图访问一个变量,创建一个导航控制器,我在我的应用程序委托在视图控制器中定义(我正在构建一个标签栏应用程序与每个选项卡.plist,如向下钻取应用程序)。 我试图摆脱错误,说“请求会员”indNavControl“的东西不是结构或工会,有人可以帮我吗?

码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

A37dgAppDelegate *AppDelegate = (A37dgAppDelegate *)[[UIApplication sharedApplication] delegate];
self.indNavControl = [AppDelegate.indNavControl];

//Get the dictionary of the selected data source.
NSDictionary *dictionary = [self.tableDataSource objectAtIndex:indexPath.row];

//Get the children of the present item.
NSArray *Children = [dictionary objectForKey:@"Children"];


if([Children count] == 0) {

    DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:[NSBundle mainBundle]];

    A37dgAppDelegate *AppDelegate = (A37dgAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [AppDelegate.indNavControll push indNavControl];
    [self.indNavControl pushViewController:dvController animated:YES];
    [dvController release];
}
else {

    //Prepare to tableview.
    IndustriesViewController *indViewControl = [[IndustriesViewController alloc] initWithNibName:@"IndustryView" bundle:[NSBundle mainBundle]];

    //Increment the Current View
    indViewControl.CurrentLevel += 1;

    //Set the title;
    indViewControl.CurrentTitle = [dictionary objectForKey:@"Title"];

    //Push the new table view on the stack
    A37dgAppDelegate *AppDelegate = (A37dgAppDelegate *)[[UIApplication sharedApplication] delegate];
    [self.indNavControl pushViewController:indViewControl animated:YES];

    indViewControl.tableDataSource = Children;

    [indViewControl release];
}

}

真的,我想要做的就是使用UIApplication sharedApplication方法引用我的视图控制器,但我无法弄清楚。


你在这里输入“A37dgAppDelegate.h”和“IndustriesViewController.h”吗?


你是否在你的AppDelegate中声明'indNavControl'属性? 应该有

@property (nonatomic, retain) NSObject *indNavController;

或类似于你的AppDelegate.h文件中的东西。 检查你是否有。 如果没有,请添加它。

编辑:另外,因为没有ObjC方法

[AppDelegate.indNavControl];

你应该摆脱[和]在这一行。

EDIT2:你的应用程序委托有多个实例:在开始和'if'语句中。 他们的名字是一样的。 你应该删除

A37dgAppDelegate *AppDelegate = ...

在“if”语句中,因为名为“AppDelegate”的变量已经存在。


哪条线? 你有一个错字(AppDelegate.indNavControll)。

看起来你正在使用可怕的做法(是的,我知道Apple会这样做)命名实例变量和属性是相同的,这使得事情难以从上下文中读出。 indNavControl是另一个类的属性吗? 还有那个类的实例变量?

链接地址: http://www.djcxy.com/p/52403.html

上一篇: UIApplication sharedApplication Help?

下一篇: Entity Framework 6 get complext return value from a stored procedure