SBFolderController: Difference between revisions

From iPhone Development Wiki
No edit summary
m (Readability)
Line 5: Line 5:
<source lang=objc>
<source lang=objc>
//Create instance of SBFolderController
//Create instance of SBFolderController
SBFolderController *innerFolder = [[[[[%c(SBIconController) sharedInstance] controllerClassForFolder:[iconView.icon folder]] alloc] initWithFolder:[iconView.icon folder] orientation:[[%c(SBIconController) sharedInstance] orientation] viewMap:[[[%c(SBIconController) sharedInstance] _rootFolderController] _viewMap]] autorelease];
SBIconController *iconController = [%c(SBIconController) sharedInstance];
SBRootFolderController *rootFolderController = [iconController _rootFolderController];
SBFolder *folder = [iconView.icon folder];
Class controllerClass = [iconController controllerClassForFolder:folder];
 
SBFolderController *innerFolder = [[[controllerClass alloc] initWithFolder:folder orientation:[iconController orientation] viewMap:[rootFolderController _viewMap]] autorelease];
//Tell rootFolderController we have an innerFolderController
//Tell rootFolderController we have an innerFolderController
[[[%c(SBIconController) sharedInstance] _rootFolderController] setInnerFolderController:innerFolder];
[rootFolderController setInnerFolderController:innerFolder];
 


//Folder view retrieved with:
//Folder view retrieved with:
SBFolderView *view = [innerFolder contentView];
SBFolderView *view = [innerFolder contentView];


//To close folder
//To close folder
[[[%c(SBIconController) sharedInstance] _rootFolderController] _setInnerFolderOpen:NO animated:NO completion:nil];
[rootFolderController _setInnerFolderOpen:NO animated:NO completion:nil];
</source>
</source>

Revision as of 00:07, 2 March 2015

SBFolderController is the superclass of SBRootFolderController you can use this to create a new instance of SBFolderController for any SBFolder (you could also use another SBFolderController, this is relevant with folders in folders). This is useful if you need a SBFolderView.

iOS 8

//Create instance of SBFolderController
SBIconController *iconController = [%c(SBIconController) sharedInstance];
SBRootFolderController *rootFolderController = [iconController _rootFolderController];
SBFolder *folder = [iconView.icon folder];
Class controllerClass = [iconController controllerClassForFolder:folder];

SBFolderController *innerFolder = [[[controllerClass alloc] initWithFolder:folder orientation:[iconController orientation] viewMap:[rootFolderController _viewMap]] autorelease];
//Tell rootFolderController we have an innerFolderController
[rootFolderController setInnerFolderController:innerFolder];

//Folder view retrieved with:
SBFolderView *view = [innerFolder contentView];

//To close folder
[rootFolderController _setInnerFolderOpen:NO animated:NO completion:nil];