添加视图时发出信号sigabrt

时间:2013-06-25 17:05:56

标签: ios xcode sigabrt

刚开始使用Xcode上的不同项目时(单视图,主视图,...) 我总是遇到线程1:信号sigabrt警告,它停止了我的iOS模拟器。

对于此模拟,我从单个视图项目开始,其中一个按钮链接到另一个视图。没有什么复杂的,即使我是iOS开发世界的新手。

感谢您的帮助

Thread backtrace :
2013-06-25 18:54:39.356 App4[1313:11303] *** Terminating app due to uncaught exception          'NSGenericException', reason: 'Push segues can only be used when the source controller is       managed by an instance of UINavigationController.'
*** First throw call stack:
(0x1c90012 0x10cde7e 0x467f31 0x459b99 0x459c14 0x10e1705 0x152c0 0x15258 0xd6021 0xd657f     0xd56e8 0x44cef 0x44f02 0x22d4a 0x14698 0x1bebdf9 0x1bebad0 0x1c05bf5 0x1c05962 0x1c36bb6     0x1c35f44 0x1c35e1b 0x1bea7e3 0x1bea668 0x11ffc 0x1fad 0x1ed5 0x1)
libc++abi.dylib: terminate called throwing an exception

#import <UIKit/UIKit.h>

@interface CalViewController : UIViewController

@end


#import <UIKit/UIKit.h>

@interface CalAppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end


#import "CalViewController.h"

@interface CalViewController ()

@end

@implementation CalViewController

- (void)viewDidLoad
{
 [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
  [super didReceiveMemoryWarning];
  // Dispose of any resources that can be recreated.
}

@end

3 个答案:

答案 0 :(得分:1)

问题不在于连接,而在于您尝试将新的视图控制器推送到导航控制器,但您的应用程序不使用导航控制器。您可以通过几种方式解决此问题。首先,如果你想要一个导航控制器,把你的根视图放在导航控制器里面,然后推送segue就可以了,或者你可以把segue的类型改为模态或替换。

答案 1 :(得分:0)

确保调用按钮的方法。如果您使用的是故事板,请检查按钮和视图的连接。还要检查您的segue是否在两个视图之间正确设置。如果问题仍然存在,请尝试逐行调试代码。希望这可能会有所帮助。

答案 2 :(得分:0)

如果您正在使用故事板,则只需选择主视图并在屏幕顶​​部的xcode菜单栏中选择“编辑器”,然后选择“嵌入”,然后选择“导航控制器”。

这是一份更深入的指南..

http://www.appcoda.com/use-storyboards-to-build-navigation-controller-and-table-view/