2012-08-15 19 views
1

所以即時通訊嘗試寫入一個UITableView的東西進入UITextview。nsunknownkeyexception在segue

並在UITextview中有一個按鈕來清除文本。 我有2個問題。

現在即時得到一個錯誤

Terminating app due to uncaught exception 'NSUnknownKeyException', reason:  '[<textViewController 0x6e69760> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key clearButton.' 

斷點說,當performSegue被稱爲內didSelectRowAtIndexPath方法

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
[self performSegueWithIdentifier:@"segueIdentifier" sender:self]; 
} 

這裏

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    if([segue.identifier isEqualToString:@"fileSelected"]){ 
    textViewController *nextViewController = segue.destinationViewController ; 
    nextViewController.title = @"newView"; 

    [nextViewController setText:[[NSString alloc] initWithData:[self readFromFile:@"textfile.txt"] encoding:NSUTF8StringEncoding]]; 
} 
} 

,也該被拋出。我嘗試設置與數據TextView的文本我從一個文件中的文件系統 繼承人的讀取讀寫功能,這是不工作...

-(NSData*) readFromFile:(NSString *)filename{ 
NSString* content = @""; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory, filename]; 

content = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; 

return [content dataUsingEncoding:NSUTF8StringEncoding]; 
} 
-(void) saveToFile:(NSString *)filename withData:(NSData *)data{ 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath = [NSString stringWithFormat:@"%@/%@",documentsDirectory,filename]; 
[data writeToFile:filePath atomically:YES]; 
} 

難道我錯SEGUE期間,以導致異常?如果你需要任何其他代碼,生病了。

在此先感謝

+0

我想我找出了什麼是錯的....清除文本的按鈕。它嵌入到UINavigationController的菜單欄中。所以我認爲將按鈕鏈接到textview的控制器是破壞了代碼。 有沒有一種方法將按鈕嵌入UINavigationController的欄中? – Pita 2012-08-15 07:25:22

回答

0

檢查你有一個實際名爲 「segueIdentifier」 SEGUE。這將是第一步。

+0

是的,我檢查,在模板代碼中,有 [self.navigationController pushViewController:detailViewController animated:YES]; 是否需要編碼?或沒有它的罰款 – Pita 2012-08-15 06:46:06

+0

建議你一次解決一個問題 - 1.讓segue工作,然後2.處理你的文本內容。因此,請將prepareForSegue中的內容註釋掉,看它是否仍然崩潰。那麼,什麼是「fileSelected」繼續 - 這是一個不同的階段,是的?不知道「模板代碼」是指什麼 - 這是什麼? – 2012-08-15 07:49:22

+0

segue部分是固定的。我不刪除按鈕,並將其添加回來..某種魔力,但它不會再崩潰了,可能是某個地方的錯字。 – Pita 2012-08-15 08:21:11

0

這個問題出現了我的SEGUE後由視圖和控制器之間的連接斷開造成的:

screenshot
(較低的一個被打破)


你只要刪除連接並重新添加。