5 Replies Latest reply: May 6, 2012 6:48 PM by Llessur999
Conundrum Level 1 Level 1 (5 points)

Hello. Can anybody tell me which organization (visual prefered) tool can be used to keep track of the objects that are created in a large program. UICatalog is Apple provided application with many objects and files. Is there a tool that I could use to analysis the layout of UICatalog quickly? Thank you for your assistance, in advance!!

  • 1. Re: UICatalog?
    Llessur999 Level 4 Level 4 (1,170 points)

    The Project and Symbol Navigators provide a good overview of modules and classes. Is that sufficient?

  • 2. Re: UICatalog?
    Conundrum Level 1 Level 1 (5 points)

    What I see in the Project are the Project files. I am looking for a graphical representation of the entire project, i.e. how are the objects interconnected?

     

    I would also like to know is there any visual tools that are typically used to construct a visual representation of an application BEFORE any actual coding is done?  Thank you for your help?

  • 3. Re: UICatalog?
    Llessur999 Level 4 Level 4 (1,170 points)

    The Symbol Navigator shows the hierarchy of classes and class members. If you have never used it before, read this first.

     

    Browsing the Class Hierarchy

    https://developer.apple.com/library/ios/#recipes/xcode_help-symbol_navigator/Rec ipe.html

     

     

    After looking at the UICatalog sample project, I think your question is more basic. That project uses a separate interface builder document (nib/xib) for each view controller. You can see the controls on each view by viewing the nib in the Resources folder. The view controllers themselves are programmatically instantiated, so you cannot view the connections between view controllers at design time. Each controller is instantiated in the MainViewController didSelectRowAtIndexPath when the corresponding table row is selected (menuList is an array of view controllers initialized in viewDidLoad).

     

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

    {

              UIViewController *targetViewController = [[self.menuList objectAtIndex: indexPath.row] objectForKey:kViewControllerKey];

              [[self navigationController] pushViewController:targetViewController animated:YES];

    }

     

    This sample project could be re-designed to use a storyboard containing all view controllers, with segues between view controllers. In that case you could see how everything was connected on the storyboard. Storyboards did not exist when that sample was created.

  • 4. Re: UICatalog?
    Conundrum Level 1 Level 1 (5 points)

    I found what I was looking for. Go to XCode --> Design (menu item) , then select Class Model --> Quick Model.

  • 5. Re: UICatalog?
    Llessur999 Level 4 Level 4 (1,170 points)

    Unfortunately the Class Model was dropped in Xcode 4. A nice feature, hopefully it will return some day.