Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Moving to another view controller in iOS on Button Click

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):

enter image description here

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.

like image 890
christianleroy Avatar asked Oct 24 '13 18:10

christianleroy


People also ask

How do I switch between view controllers?

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.

How do I move a different view controller in storyboard?

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.


1 Answers

try this:

WebServiceViewController *wc = [[UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil] instantiateViewControllerWithIdentifier:@"WebServiceViewController"];

also set storyboardId to WebServiceViewController in Identity Inspector

like image 65
ChikabuZ Avatar answered Nov 15 '22 17:11

ChikabuZ