title: Moving to another view controller in iOS on Button Click
body: <p>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.</p>
  
  <p>Here are my codes:</p>
  
  <p>In ViewController.m:</p>
  
  <pre><code>- (IBAction)button1:(id)sender {
  
      WebServiceViewController *wc = [[WebServiceViewController alloc] 
             initWithNibName:@"WebServiceViewController" 
             bundle:nil];
  
      [self.navigationController pushViewController:wc animated:YES];
  }
  </code></pre>
  
  <p>I placed an import "WebServiceViewController.h" in the headers.</p>
  
  <p>Here is the error (not an IDE error message, but not a success either):</p>
  
  <p><img src="https://i.stack.imgur.com/uSOcj.png" alt="enter image description here"></p>
  
  <p>Here is the exception:</p>
  
  <pre><code>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 &lt;/Users/Guest/Library/Application Support/iPhone Simulator/7.0/Applications/C6FA1F33-5E11-40C2-8C69-DA368F21CA5F/sample.app&gt; (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) 
  </code></pre>
  
  <p>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.</p>
  
  <p>I'm obviously missing something. I hope someone can help me. I'd be very grateful.</p>
  
  <p>EDIT:</p>
  
  <p>This worked for me</p>
  
  <pre><code>WebServiceViewController *wc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil]
    instantiateViewControllerWithIdentifier:@"WebServiceViewController"];
    [self.navigationController pushViewController:wc animated:YES];
  </code></pre>
  
  <p>storyboardWithName depends on the storyboard's name.</p>