簡體   English   中英

我不能在兩個不同的文件中使用#import“ Header.h”

[英]I cant use #import “Header.h” in two different files

我有3個ViewController。 我的意思是我希望他們能夠互相訪問。

VC1必須訪問VC2和VC3。

VC2必須訪問VC1和VC3。

VC3必須訪問VC1和VC2。

當我想更改為另一個ViewController時,請執行以下操作:

我導入了可以更改的ViewController的標頭:

例如,在VC1中:

#import "VC2"
#import "VC3"

然后我做:

VC2 *myVC2;
VC3 *myVC3;

然后我用以下方式更改視圖控制器:

myVC2 = [[VC2 alloc] initWithNibName:@"VC2" bundle: nil];
myVC-C = [[VC3 alloc] initWithNibName:@"VC3" bundle: nil];

[self.view addSubView:myVC2.view];

要么

[self.view addSubView:myVC3.view];

但是,當您有2個ViewController時,此方法可用。 現在,在第三個ViewController中,我嘗試導入標頭並聲明:

VC3 *myVC3;

VC1 *myVC1;

編譯器告訴我一個Fix。

他建議我更改班級名稱,好像您做錯了什么一樣。

調用多個ViewController的方法是什么? 我不想使用TabBars。 我使用在每個視圖中復制的3個按鈕在ViewController之間進行訪問。

問候。

根據您對問題的描述,我猜測您的問題與“循環依賴關系”有關。 通常,最好避免在標頭( .h )文件中使用#import 而是使用@class表示該類存在,然后將#import指令放在實現( .m )文件中以實際使用該類。

例:

MyViewController.h

#import <UIKit/UIKit.h>

@class MySecondViewController;

@interface MyViewController : UIViewController {
     MySecondViewController *_secondViewController;
     // ...
}

// ...

@end

MyViewController.m

#import "MyViewController.h"
#import "MySecondViewController.h"

@implementation MyViewController

// ...

@end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM