2017-09-26 61 views
2

我的應用程序最近(iOS版11)開始崩潰時,一個自定義的UIViewController加載:iOS的11 - 建議自定義視圖控制器不加載 - 崩潰

出現在該行的崩潰:

PDFViewController *pdfvc = [self.storyboard instantiateViewControllerWithIdentifier:@"PDFView"];

我確認:

  • 在我引用正確的自定義類PDFViewController故事板和ID正確PDFView
  • 超類已經利用initWithCoder

確切的錯誤我得到的是:

[PDFViewController initWithCoder:]: unrecognized selector sent to instance 0x1c0
2017-09-26 22:35:44.578082+0900 flightcomp[9764:3233421] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[PDFViewController initWithCoder:]: unrecognized selector sent to instance 0x1c0' 

現在我真的搜索在這個瘋狂的周圍 - 經歷過這麼多的StackOverflow和谷歌的網頁找什麼。

所以我的問題是 - 可能有人,請建議一些可能導致此問題的事情,以便我可以進一步調試。

謝謝。

p.s.

爲PDFViewController的.H樣子:

@interface PDFViewController : UIViewController <UIPrintInteractionControllerDelegate> 

爲PDFViewController的.M是這樣的:

@implementation PDFViewController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 
} 
+0

您在XIB中有viewcontroller?我可以看到'initWithNibName' –

+0

是的,我在故事板中有viewController。那裏有什麼不對嗎? – userMod2

+0

是你從哪裏調用的'initWithNibName'方法? –

回答

3

https://i.stack.imgur.com/BSneC.png

的問題是,蘋果的iOS爲11的已經包括PDFKit作爲一個框架。我相信PDFViewController現在是這個框架的保留名稱。我有同樣的問題,並將PDFViewController更改爲SuperDuperPDFViewController後工作得很好。

+0

啊!這解釋了一切。 所以我實際上創建了另一個視圖和另一個控制器(自然使用PDFViewControllerTwo),並假設它是新的它的工作。 當我刪除PDFViewControllerTwo來檢查原始(因爲它只是一個副本),它再次開始崩潰。 非常感謝您的確認 - 希望錯誤消息說::) – userMod2

+0

謝謝,它的工作。但爲什麼在編譯時沒有顯示任何錯誤。 – Ujesh

0

重命名PDFView喜歡的東西MyPDFView。