我可以将 pushViewController 与 UISegmentedControl 一起使用吗?

Posted

技术标签:

【中文标题】我可以将 pushViewController 与 UISegmentedControl 一起使用吗?【英文标题】:Can I use pushViewController with UISegmentedControl? 【发布时间】:2012-03-09 07:12:36 【问题描述】:

我想使用带有 UIsegmentedController 的 pushViewController 来推送到其他视图和 xib。 我可以在 xcode 4 中这样做吗???如果可以的话,请您指导我吗?

这是我尝试的一些代码。但不起作用。

-(IBAction) segmentedControlIndexChanged:(id)sender


    if ([sender selectedSegmentIndex] == 0) 
    
        BDshelveController *shelve_page = [[BDshelveController alloc] initWithNibName: @"BDshelveController" bundle:nil];

    
    else if([sender selectedSegmentIndex] == 2)
    

        BDlibraryController *lib_page = [[BDlibraryController alloc] initWithNibName:@"BDlibraryController" bundle:nil];
        [self.navigationController pushViewController:lib_page animated:YES];
    


【问题讨论】:

究竟是怎么回事它不起作用? 它没有推送到 BDlibraryController 视图 :( 【参考方案1】:

是的,你可以,这些是你可以检查的东西

您在代码中遗漏了 segmentedIndex=1。

you missed to call pushViewController when selected segment=0

或者self.NavigatonController更可能为nil

您的分段控件尚未连接值更改为您的操作

如果 self.navigationController 为 nil,这取决于您如何初始化应用程序,如果您的应用程序是导航栏驱动的,那么 AppDelegate 中的这段代码应该可以解决问题:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:yourRootViewController]; // <-- depends if you have storyboards, xib etc...you should this already initialized
    [self.window addSubview:navController.view];
    [navController release]; // <-- depends if you have ARC
    [self.window makeKeyAndVisible];
    return YES;

否则我想你可以通过将 self 作为根控制器来初始化它。

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self];

【讨论】:

我没有为此复制所有的 code.sry。现在我知道 self.NavigationController 是(null)。我应该编码 UINavigationController *navigationController = [[UINavigationController alloc] init];第一个??

以上是关于我可以将 pushViewController 与 UISegmentedControl 一起使用吗?的主要内容,如果未能解决你的问题,请参考以下文章

pushViewController 不能与标签栏控制器一起使用

Swift:如何取消延迟的 pushViewController?

pushViewController 和 showViewController 的区别

pushViewController 没有推送

使用 pushViewController 然后 popViewController 时将工具栏保持在 UIView 的顶部?

透明 ViewController 可与 presentViewController 一起使用,但不能与 pushViewController 一起使用