2010-04-26 3 views
1

Я использую панель навигации, на которой я нажимаю несколько видов в соответствии с тем, что пользователь выбирает. Теперь мне нужно выскочить на первый взгляд контроллера от третьего контроллера. Приложения выходят на первый вид контроллера, но элементы навигации не изменяются, поскольку они находятся во втором контроллере представления, но мне нужно изменить параметры навигации.контроллер pop to first view (контроллер корневого представления) с контроллера третьего вида. Элементы не изменяются.

код, который я использовал: appdelagte.h

Bool isDelete; 
@property(nonatomic)Bool isDelete; 

appDelegate.m

@synthesize isDelete; 

thirdViewController:

-(void)viewWillAppear:(Bool)animated { 
    appDelegate.isDelete=YES; 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

secondViewController.m

-(void)viewWillAppear:(Bool)animated { 
    if(appDelegate.isDelete==YES) 
    { 
     [self.navigationController popViewControllerAnimated:YES]; 
    } 
} 

Здесь вы можете просмотреть контроллер, но navigationItems не изменяются, так как он находится в контроллере просмотра secon

Помогите мне решить эту проблему. Спасибо заранее.

ответ

8

Возможно, вы можете сделать это, не показывая третий ctrl? Как это сделать, проверьте if(appDelegate.isDelete==YES) во втором ctrl.

- (void) showThird { 
    if(appDelegate.isDelete == NO) { 
     MyThirdCtrlClss *ctrl = [[MyThirdCtrlClss alloc] init]; 
     [self.navigationController pushViewController:ctrl animated:YES]; 
     [crel release]; 
    } else { 
     [self.navigationController popToRootViewControllerAnimated:YES]; 
    } 
} 
Смежные вопросы