I am very new to iOS and I am still trying to grasp things. I am trying out this simple program in XCode 5 where when a user clicks the button, he will be redirected into another view controller. I did what other forums told other askers to do, but I seem to encounter an error.
Here are my codes:
In ViewController.m:
- (IBAction)button1:(id)sender {
WebServiceViewController *wc = [[WebServiceViewController alloc]
initWithNibName:@"WebServiceViewController"
bundle:nil];
[self.navigationController pushViewController:wc animated:YES];
}
I placed an import "WebServiceViewController.h" in the headers.
Here is the error (not an IDE error message, but not a success either):
Here is the exception:
2013-10-25 02:05:51.904 sample[16318:a0b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/Guest/Library/Application Support/iPhone Simulator/7.0/Applications/C6FA1F33-5E11-40C2-8C69-DA368F21CA5F/sample.app> (loaded)' with name 'WebServiceViewController''
*** First throw call stack:
(
0 CoreFoundation 0x017345e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x014b78b6 objc_exception_throw + 44
2 CoreFoundation 0x017343bb +[NSException raise:format:] + 139
3 UIKit 0x004ca65c -[UINib instantiateWithOwner:options:] + 951
4 UIKit 0x0033cc95 -[UIViewController _loadViewFromNibNamed:bundle:] + 280
5 UIKit 0x0033d43d -[UIViewController loadView] + 302
6 UIKit 0x0033d73e -[UIViewController loadViewIfRequired] + 78
7 UIKit 0x0033dc44 -[UIViewController view] + 35
8 UIKit 0x00357a72 -[UINavigationController _startCustomTransition:] + 778
9 UIKit 0x00364757 -[UINavigationController _startDeferredTransitionIfNeeded:] + 688
10 UIKit 0x00365349 -[UINavigationController __viewWillLayoutSubviews] + 57
11 UIKit 0x0049e39d -[UILayoutContainerView layoutSubviews] + 213
12 UIKit 0x00294dd7 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 355
13 libobjc.A.dylib 0x014c981f -[NSObject performSelector:withObject:] + 70
14 QuartzCore 0x03aee72a -[CALayer layoutSublayers] + 148
15 QuartzCore 0x03ae2514 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380
16 QuartzCore 0x03ae2380 _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 26
17 QuartzCore 0x03a4a156 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 294
18 QuartzCore 0x03a4b4e1 _ZN2CA11Transaction6commitEv + 393
19 QuartzCore 0x03a4bbb4 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 92
20 CoreFoundation 0x016fc53e __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30
21 CoreFoundation 0x016fc48f __CFRunLoopDoObservers + 399
22 CoreFoundation 0x016da3b4 __CFRunLoopRun + 1076
23 CoreFoundation 0x016d9b33 CFRunLoopRunSpecific + 467
24 CoreFoundation 0x016d994b CFRunLoopRunInMode + 123
25 GraphicsServices 0x036859d7 GSEventRunModal + 192
26 GraphicsServices 0x036857fe GSEventRun + 104
27 UIKit 0x0022a94b UIApplicationMain + 1225
28 sample 0x00002e7d main + 141
29 libdyld.dylib 0x01d70725 start + 0
30 ??? 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
Furthermore, I'm using storyboard. I have an initial scene where the user logs in. This scene has a navigation controller embedded. After logging in, I'm not gonna use segue since there would be several view controllers that can be loaded, depending on what type of user has logged in. I'm trying to do this simple program since I'm gonna be using it more complexly in the future.
I'm obviously missing something. I hope someone can help me. I'd be very grateful.
EDIT:
This worked for me
WebServiceViewController *wc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]
instantiateViewControllerWithIdentifier:@"WebServiceViewController"];
[self.navigationController pushViewController:wc animated:YES];
storyboardWithName depends on the storyboard's name.
From the Library, add a button to the first View Controller and name the button, for example: Show Second View . Select the button, press and hold the Control key on the keyboard and drag from the button to the second View Controller.
Now click once on the navigation controller object on the storyboard. Once the navigation controller object is selected, hold down the Control key on your keyboard and the left button on your mouse and drag your mouse over to the view controller (on the right) that was originally on your storyboard.
try this:
WebServiceViewController *wc = [[UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil] instantiateViewControllerWithIdentifier:@"WebServiceViewController"];
also set storyboardId to WebServiceViewController in Identity Inspector
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With