pantalla - no me aparece el centro de control iphone
¿Cómo cambiar la vista central al hacer clic en la fila de la vista de mesa del controlador izquierdo en el iphone?(MFSideMenu) (2)
Estoy usando MFSideMenu para que mi aplicación de iPhone implemente una barra lateral. Implementé con éxito la barra lateral. con el siguiente código en mi appdelegete
- (ViewController *)demoController {
return [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
}
- (UINavigationController *)navigationController {
return [[UINavigationController alloc]
initWithRootViewController:[self demoController]];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
LeftSlideViewController *leftMenuViewController = [[LeftSlideViewController alloc] init];
MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
containerWithCenterViewController:[self navigationController]
leftMenuViewController:leftMenuViewController
rightMenuViewController:nil];
container.navigationController.navigationItem.rightBarButtonItem=nil;
self.window.rootViewController = container;
[self.window makeKeyAndVisible];
return YES;
}
Ahora déjame explicar mi problema ...
Tengo el nombre del controlador de vista con LeftSideViewController en el que hay UITablview Y en la aplicación comienza hay un controlador de vista como una vista central llamada "ViewController". No necesito el controlador de vista del lado derecho, así que no incluyo ese
ahora tengo UITableview en mi controlador izquierdo y al hacer clic en esa fila de UITableview tengo que cambiar la vista central.
Mi problema es que cuando coloco este código en el método de delegado de uitableview del controlador de vista de la izquierda, esto no cambia mi vista central con el nuevo controlador de vista
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Load new front view
MFSideMenuContainerViewController *menuController = (MFSideMenuContainerViewController*)((AppDelegate*)[[UIApplication sharedApplication] delegate]).viewController;
PhotoGalleryViewController *SearchBarTableView=[[PhotoGalleryViewController alloc]initWithNibName:@"PhotoGalleryViewController" bundle:nil];
[self.navigationController pushViewController:SearchBarTableView animated:YES];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:SearchBarTableView];
menuController.centerViewController=navController;
//[menuController1 setRootController:navController animated:YES];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
¿Puede alguien darme alguna orientación acerca de cómo cambiar las vistas de acuerdo con la fila de UITableview de la vista de lado izquierdo?
Debería implementar el método delegar desde su vista central e LeftSideViewController. entonces el que realmente cambia la vista es el método desde su vista central. el código dentro de mi didSelectRowAtIndexPath:
else if (indexPath.section==1 && indexPath.row==0) {
[delegate chooseCategory:2];
}
else if (indexPath.section==1 && indexPath.row==1) {
[delegate chooseCategory:3];
}
else if (indexPath.section==1 && indexPath.row==2) {
[delegate chooseCategory:15];
}
chooseCategory es un método de centerview para cambiar sus vistas.
Estoy usando MFSideMenu también. Así es como manejo el didSelectRowAtIndexPath ...
Aunque, estoy usando storyboard en el mío. Pero también tengo viewcontrollers incrustados dentro de NavigationControllers como lo hace, y encontré este método de transición para trabajar.
if (indexPath.section ==1 ){
if (indexPath.row==0){
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
UITabBarController *destNav = [storyboard instantiateViewControllerWithIdentifier:@"MainTabBar"];
[self.menuContainerViewController setCenterViewController:destNav];
}
if (indexPath.row==1){
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
UINavigationController *destNav = [storyboard instantiateViewControllerWithIdentifier:@"TopNavID"];
[self.menuContainerViewController setCenterViewController:destNav];
}
if (indexPath.row == 2){
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
UINavigationController *destNav = [storyboard instantiateViewControllerWithIdentifier:@"OptionsNavID"];
[self.menuContainerViewController setCenterViewController:destNav];
}
}
[self.menuContainerViewController setMenuState:MFSideMenuStateClosed];