簡體   English   中英

使參數從一個ViewController傳遞到另一個的崩潰

[英]crash passing parameter from one viewcontroller to another

我正在嘗試將參數從一個視圖控制器傳遞給另一個,但是應用crashes異常crashes

我的代碼是這樣的:

SelectedItemViewController *nextView = [storyboard instantiateViewControllerWithIdentifier:@"SelectedItemViewID"];

nextView.m_selectedItemId = [NSNumber numberWithInt:777];

[self presentViewController:nextView animated:YES completion:NULL];

我的堆棧中有以下內容:

*由於未捕獲的異常' NSInvalidArgumentException', reason: '-[UINavigationController setM_selectedItemId:]: unrecognized selector sent to instance 0x9c765d0'而終止應用程序NSInvalidArgumentException', reason: '-[UINavigationController setM_selectedItemId:]: unrecognized selector sent to instance 0x9c765d0'

在情節提要中,標識為SelectedItemViewID的視圖控制器是導航控制器,而不是SelectedItemViewController 因此,在設置m_selectedItemId之前,您應該訪問導航控制器的根視圖控制器(應該是SelectedItemViewController )。

我在這里找到解決方案: InstantiateViewControllerWithIdentifier並傳遞數據

如果要通過導航控制器將參數傳遞給視圖控制器,應該怎么辦:

UINavigationController *navigationController = [storyboard instantiateViewControllerWithIdentifier:@"SelectedItemViewID"];

SelectedItemViewController *nextView = navigationController.viewControllers[0];

nextView.m_selectedItemId = [NSNumber numberWithInt:777];

[self presentViewController:navigationController animated:YES completion:NULL];

在情節提要中選擇視圖控制器時,是否將類設置為SelectedItemViewController

顯然,您似乎在SelectedItemViewController上有一個@property ... m_selectedItemId (或至少是setter方法setM_selectedItemId ),否則您的代碼甚至無法編譯。 但是,似乎[storyboard instantiateViewControllerWithIdentifier:@"SelectedItemViewID"]並沒有真正返回預期的SelectedItemViewController 因此,我有種感覺,您忘記在情節提要中為SelectedItemViewController設置正確的類名。

暫無
暫無

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

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