我使用下面的代碼,並得到以下錯誤:爲什麼我無法將新視圖控制器推送到當前視圖?
編輯:見this如果您無法讀取上面的圖片!
「ChangePasscode」目前被聲明爲一個類,並且是一個帶.h和.m文件以及.nib文件的視圖控制器。
爲什麼會出現這些問題,我該如何解決這些問題?
謝謝!
我使用下面的代碼,並得到以下錯誤:爲什麼我無法將新視圖控制器推送到當前視圖?
編輯:見this如果您無法讀取上面的圖片!
「ChangePasscode」目前被聲明爲一個類,並且是一個帶.h和.m文件以及.nib文件的視圖控制器。
爲什麼會出現這些問題,我該如何解決這些問題?
謝謝!
我會說,你沒有在當前的文件中導入ChangePasscode.h
更新:。響應在下面評論話題,你需要真正創建一個導航結構,如果你想推視圖控制器。在IOS 5的優選方式是如下:
// AppDelegate.h
// …Other existing code
@property (nonatomic, retain) UINavigationController *navController;
@end
// AppDelegate.m
@synthesize navController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
navController = [[UINavigationController alloc] initWithRootViewController:viewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = navController;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
正確!但是...編譯時出現這個錯誤:http://f.cl.ly/items/0x2t1A2c12383d2M130h/2ndXCodeIssue.tiff – pixelbitlabs
試試看Cle (產品>清潔)。當您單擊「清理」菜單選項時,也可以通過按住Option鍵來清除構建文件夾。 – FeifanZ
它現在有效,因爲我將「#import」ChangePasscode.m「」更改爲「#import」ChangePasscode.h「」 - 儘管調用新視圖控制器的動作被調用時,什麼都沒有發生?代碼完全一樣。在NSLog中沒有任何一個:( – pixelbitlabs
變化[NSBundle mainBundle]
爲零 確保您有進口ChangePasscode.h在M檔
修正了錯誤,因爲我沒有使用「#import 「代碼。但是,編譯時我現在得到這個錯誤:http://f.cl.ly/items/0x2t1A2c12383d2M130h/2ndXCodeIssue.tiff – pixelbitlabs
我想這是循環引用的經典案例的頂部。也許這兩個類相互引用?由於此前向聲明,當嘗試引用具有前向聲明的類的類名稱或屬性時,可能會收到各種警告。
凡你有包括ChangePasscode
。也可以使用#import
而不是#include
。
UPDATE:爲您解決ld: duplicate symbol...
錯誤
看來你正在編譯同一類ChangePasscode
兩次在代碼中的不同地方。這可能發生在以下情況。
嘗試發現在整個項目中的類,並確保只有一個副本可以在自己的項目中
修正了錯誤,因爲我沒有使用「#import」代碼。但是,編譯時我現在得到這個錯誤:http://f.cl.ly/items/0x2t1A2c12383d2M130h/2ndXCodeIssue.tiff – pixelbitlabs
顯然你已經在.m文件中重新定義了一些類變量。通過重新命名衝突的名字來糾正這種情況,你很好。 –
我檢查過,根本沒有任何類參考:/ – pixelbitlabs
使用
@class ChangePasscode;
而不是使用
#import ChangePasscode.h
這就是我正在做的,但有錯誤在問題中解釋,所以我改爲#import和我的新錯誤是:http://f.cl.ly/items/0x2t1A2c12383d2M130h/2ndXCodeIssue.tiff – pixelbitlabs
看來你正在編譯在您的代碼的不同位置兩次相同的ChangePasscode類。這可能發生在以下情況。 您已將相同的類實現放入兩個不同的文件中; 實際上你只有一個這個類的實現,但是你也在你的項目中鏈接一個框架或庫,其中包含一個名字與你的名字完全相同的類。 嘗試在整個項目中查找您的課程,並確保您的項目中只有一個副本可用。 – aahsanali
我該怎麼做?你什麼意思? :S – pixelbitlabs
聽起來就像['接收器類型‘CCParticleBatchNode’類消息是向前聲明'](http://stackoverflow.com/q/7965929/590956)昨天得到了問。這裏有一些相當不錯的答案,但你可能想要遵循那個Q. – Sam
不是真正相關的...這裏的答案更好/更有用... – pixelbitlabs