navigationController pushViewController - SIGABRT error

Discussion in 'iOS Programming' started by kubo, Jan 2, 2012.

  1. kubo macrumors newbie

    Jan 2, 2012

    I'm new to object-c/cocoa, so please try pointing the answers so. I have problem call the pushViewController method. I have simple one view project (probabli not the best choice) with storyBoard. Then i add NavigationController to the storyBoard and change the InitialViewControler to it. Then i put a button on the FirstViewControler which is the rootViewController. I wan load the next viewControler from the StoryBoard so i add the code to the button.

    vcSecond *NextView = [[vcSecond alloc] initWithNibName:@"vcSecond" bundle:nil];
    [[self navigationController] pushViewController:NextView animated:YES];
    The NavigationControler is poited corectly and is not nil. The vcSecond viewController is allocated correctly.

    But i get the error SIGABRT. I have been looking for the correct answer but without luck. Could someone help me to work it out.
  2. xStep macrumors 68000

    Jan 28, 2003
    Less lost in L.A.
    My experience with story boards has been faulty so far, so I can't help with that. I'm just going to comment on a programming convention.

    You have begun your variable name with and upper case letter and your class with lower case letter. The opposite is the convention. So, NextView should be nextView. The class vcSecond should start with an upper case V and since I'm assuming VC stands for ViewController, it should be VCSecond.

    When I place an abbreviated hint like VC in my class names, I place it at the end instead of the beginning. So I would have named that one SecondVC. The important thing is that you follow a convention for your own code.
  3. ArtOfWarfare macrumors G3


    Nov 26, 2007
  4. jnoxx macrumors 65816


    Dec 29, 2010
    Aartselaar // Antwerp // Belgium
    Also, please use some coding conventions (if there is a chance of other developers working with you in the long run..)

    And I quote
    vcSecond -> This is your className, this should be Capital for starters, and your pointer NAME, which in your case is NextView, should be LOWER case for starters.. This is quite confusing for other developers ;)
    Also (this is not a mistake, just pointing it out), you are using []-syntax for calling getters, but this is not actually needed, because this is Objective C 1.1 syntax, and in the (newer) Objective C 2.0 syntax, you can use the DOT notation like this
    [self.navigationController ...]

    Hope that made sence

Share This Page