- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"ShowDetail"]) {
DetailViewController *detailViewController = [segue destinationViewController];
ListViewCell *cell = (ListViewCell *)sender;
Category *category = cell.Category;
NSLog(@"cell category = %@", cell.Category.Name);
//[detailViewController setCategory:category];
detailViewController.Category = category;
}
}
NSLogは正しいcell.Category.Nameを明確に示しているため、Categoryオブジェクトは良好です。prepareForSegueが[detailviewcontroller setObject]が呼び出されたときに失敗します
しかし、それはおそらくdetailViewController
内のオブジェクトが理解していない
#import "AppDelegate.h"
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
これは私がデバッグコンソール で見たものである[UITabBarController setCategory:]:認識されていないセレクタは、インスタンス0x6a100a0に送られます。プロパティ名を小文字に変更します。どういうわけか、最初の文字のキャップが気に入っています – gangt
'detailViewController'は' UITabBarController'を指し、 'UITabBarController'はcategoryプロパティや' setCategory: 'メソッドを持っていません。多分、あなたのセグーは間違った目的地を持っています。 –
統合インターフェースビルダーを使用してアプリケーションを作成するのは今回が初めてです。私の意図は、TabBarControllerをtableviewcellが選択されたときに開くことでした。それは、TabBarビューがうまくいっているが、オブジェクトを渡していないことを示しています。私もUITabBarControllerを継承し、そこにCategoryオブジェクトを追加したviewcontrollerを作成しましたが、私は同じエラーを取得します。 – gangt