2011-08-15 9 views
1

私は(私はドリルダウンアプリなどの各タブについての.plistとタブバーのアプリケーションを構築しています)ビューコントローラに私のアプリのデリゲートで定義されたナビゲーションコントローラを作成し、変数にアクセスしようとしています。私が言うエラーを取り除くためにしようとしている「メンバーのための要求 『indNavControl』何かない構造体または共用体で誰かが私を助けてもらえUIApplication sharedApplication Help?

コード:?

- (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メソッドを使用して、私のビューコントローラを参照しているが、私はどのように把握することはできません。

+0

?どの行? – akashivskyy

答えて

0

はあなたがここに?

「をA37dgAppDelegate.h」と「IndustriesViewController.h」をインポートしました
+0

どちらもインポートされていますが、なぜ変数が最初に認識されないのかまだ分かりません。 –

0

は、あなたがプロパティとしてあなたのAppDelegateで「indNavControl」を宣言しましたか?あなたのAppDelegate.hファイルには、

@property (nonatomic, retain) NSObject *indNavController; 

などがあります。あなたがそれを持っているかどうかを調べる。そうでない場合は、追加します。

EDIT:

[AppDelegate.indNavControl]; 

にはにObjC方法がないのでまた、あなたがこの行に[と]を取り除く必要があります。

EDIT2:始まりと内部の文「もし」での:あなたはあなたのアプリケーションのデリゲートのインスタンスを複数持っています。そして彼らの名前は同じです。 "AppDelegate" という名前の変数がすでに存在しているので、あなたは、 "if" ステートメントの内側に

A37dgAppDelegate *AppDelegate = ... 

を削除する必要があります。どのライン

+0

私は既にそれを@property(非構造、保持)として設定しています。UINavigatioNController * indNavControl; –

+0

OK、私の投稿を編集しました。 – akashivskyy

+0

まだ動作しません。私は "構造体または共用体ではない何かのメンバー 'indNavControl'の要求と同じエラーを取得し続けています" –

0

?あなたには、タイプミス(AppDelegate.indNavControll)があります。

そして、あなたはコンテキストの読み出しに物事が困難になり、同じインスタンス変数やプロパティに名前を付けるの恐ろしい練習を(ええ、私はAppleがそれをしない知っている)、使用しているように見えます。 indNavControlも別のクラスのプロパティですか?そして、そのクラスのインスタンス変数も?あなたはこのエラーが出るん