IOS Segue – 终止由于未捕获的exception'NSGenericexception'

故事板截图
图片

在Xcode 4.6故事板中,我有两个ViewControlers,一个持有button,另一个是labelView,在主页button的水龙头上传递一个string“Home Tapped”

下面是ViewController.m代码

#import "ViewController.h" #import "ViewController2.h" @interface ViewController () @end @implementation ViewController -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if([segue.identifier isEqualToString:@"Home"]) { NSString *message = @"Tapped on home"; ViewController2 *vc = [segue destinationViewController]; vc.labelString = message; } } 

ViewController2.h

 #import <UIKit/UIKit.h> @interface ViewController2 : UITableViewController @property(nonatomic,strong) UILabel *mylabel; @property(nonatomic,strong) NSString *labelString; @end 

和错误

 Terminating app due to uncaught exception 'NSGenericException', reason: 'Could not find a navigation controller for segue 'Home'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.' *** First throw call stack: (0x1c91012 0x10cee7e 0x468f31 0x45ab99 0x45ac14 0x10e2705 0x162c0 0x16258 0xd7021 0xd757f 0xd66e8 0x45cef 0x45f02 0x23d4a 0x15698 0x1becdf9 0x1becad0 0x1c06bf5 0x1c06962 0x1c37bb6 0x1c36f44 0x1c36e1b 0x1beb7e3 0x1beb668 0x12ffc 0x28dd 0x2805) libc++abi.dylib: terminate called throwing an exception (lldb) 

您需要将您的NavigationController作为您的故事板的入口点。 现在,它是View Controller ,这是由箭头指向它没有源的指示。