2013-12-23 50 views
0

我的viewcontroller正在使用UITableView,我想單擊該行以轉到detialView。使用didSelectRowAtIndexPath使用didSelectRowAtIndexPath調用detailview

我的工作故事板,但我UITableView類上使用的不是stroyborad場景編程它做和其他類是detailView與是在Storyboard場景。

但我無法顯示我的detailView,試着這麼多的想法。在這個我不能使用segue,因爲UItableview類不是它編程的場景,而另一種顯示detialViewController的方法是使用didSelectRowAtIndexPath

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    ServiceDisplayViewController *serviceDisplayViewController = 
    [self.storyboard instantiateViewControllerWithIdentifier:@"serviceDisplayViewController"]; 

    [self presentViewController:serviceDisplayViewController animated:NO completion:nil]; 


} 

但它給了我錯誤。

Application tried to present a nil modal view controller on target <SegmentsViewController: 0xa8757e0>.' 

任何人都可以請建議我解決此問題的最佳方法。

在此先感謝。

+0

serviceDisplayViewController將是零.. –

+0

檢查故事板標識符 – mak

+0

@Ramshad將是零?你能否詳細說明一下。 – user2760176

回答

0

首先確保標識符是正確的。然後寫下面的代碼

UIStoryboard *mystoryboard = [UIStoryboard storyboardWithName:@"myStoryBoardName" bundle:nil]; 

if (mystoryboard != nil) 
{ 
    ServiceDisplayViewController *serviceDisplayViewController = [mystoryboard instantiateViewControllerWithIdentifier:@"ServiceDisplayViewController"]; 

    if(serviceDisplayViewController != nil) 
    { 
     [self presentViewController:serviceDisplayViewController animated:NO completion:nil]; 
    } 
    else 
    { 
     NSLog(@"%@", serviceDisplayViewController is returning as nil); 
    } 
} 
else 
{ 
    NSLog(@"%@", mystoryboard is returning as nil); 
} 
+0

雅我已編輯日誌在我的問題後使用此代碼。 – user2760176

+0

感謝Ramshad這對我有用。非常感謝你(+10)... – user2760176

+0

非常歡迎... –

0
ServiceDisplayViewController *serviceDisplayViewController = 
[self.storyboard instantiateViewControllerWithIdentifier:@"ServiceDisplayViewController"]; 
Your Identifier should be your class name not object name 
+0

粘貼我的代碼而不是您的代碼 –

+0

再次發生同樣的錯誤。 '應用程序試圖在目標上呈現一個無模式視圖控制器。' – user2760176

+0

請不要簡單地發佈代碼。提供一些關於您的代碼的解釋或信息或用法。例如,請參閱[此答案](http://stackoverflow.com/a/16893057/756941)。 – NAZIK

0
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    //This is the line where your error is 
    ServiceDisplayViewController *serviceDisplayViewController = 
    [self.storyboard instantiateViewControllerWithIdentifier:@"serviceDisplayViewController"]; 
    //serviceDisplayViewController object does not get the correct object. 
    // In the storyboard check whether the identifier name(serviceDisplayViewController) is correct or not. Check even for case-sensitive error 
    //Also check self.storyboard object is also not nil 



    [self presentViewController:serviceDisplayViewController animated:NO completion:nil]; 


} 

enter image description here

相關問題