1

Я хотел бы создать приложение с контроллером навигации в качестве контроллера представления окна корня и сегментированной управления в заголовке зрения навигации контроллера, чтобы переключить его контроллер представления корневойUINavigationController с UISegmentedControl в AppDelegate для переключения RootViewController из UINavigationController

проблемы: сегментированные управления нет после добавления к контроллеру пилить

Код:

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 

    FirstViewController * fc = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:nil]; 

    UINavigationController * nc = [[UINavigationController alloc] initWithRootViewController:fc]; 
    [fc release]; 

    self.window.rootViewController = nc; 

    NSArray * array = [NSArray arrayWithObjects:@"GPS",@"List",@"Map", nil]; 

    UISegmentedControl * sc = [[UISegmentedControl alloc] initWithItems:array]; 

    sc.frame = CGRectMake(0, 0, 250, 50); 
    sc.segmentedControlStyle = UISegmentedControlStylePlain; 

    [nc.navigationItem setTitleView:sc]; 

    [sc release]; 
    [nc release]; 

    [self.window makeKeyAndVisible]; 

    return YES; 
} 
+0

Попробуйте добавить его в fc.navigationItem, тогда вам может потребоваться добавить этот сегментированный вид управления ко всем элементам навигации для каждого представленного контроллера представления –

ответ

0

Вы устанавливаете titleView для NavigationItem вместо Устанавливаемые для г т.

NSArray * array = [NSArray arrayWithObjects:@"GPS",@"List",@"Map", nil]; 

UISegmentedControl * sc = [[UISegmentedControl alloc] initWithItems:array]; 
sc.frame = CGRectMake(0, 0, 250, 50); 
sc.segmentedControlStyle = UISegmentedControlStylePlain; 

Чтобы установить в виду заголовка использовать эту линию

[ViewController.navigationItem setTitleView:sc]; 

Чтобы установить влево или вправо Вы не можете напрямую добавить пункт в панели навигации, таким образом, создать BarButtonItem с segmentControl

UIBarButtonItem *segmentItem = [[UIBarButtonItem alloc] initWithCustomView:sc]; 

добавьте его в ViewController, а не в NavigationController

[ViewController.navigationItem setRightBarButtonItem:segmentItem]; 
Смежные вопросы