在 UINavigationController 中,按钮不适用于 pushViewController

Posted

技术标签:

【中文标题】在 UINavigationController 中,按钮不适用于 pushViewController【英文标题】:In UINavigationController, button doesn't work with pushViewController 【发布时间】:2013-07-29 14:05:29 【问题描述】:

我想制作一个简单的导航控制应用程序,其中有两个视图控制器(ViewControllerViewController2)。我在ViewController 中有一个按钮,当我按下按钮时,我希望它转到另一个视图。问题是按钮不起作用。我也尝试了UIViewController,但也没有以这种方式工作。

AppDelegate.m

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.

    ViewController *vc1 = [[ViewController alloc]init];

    UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:vc1];

    self.window.rootViewController = nav;


    [self.window makeKeyAndVisible];
    [self.window addSubview:nav.view];
    return YES;

ViewController.m

- (IBAction)myButton:(id)sender 

    ViewController *vc2 = [[ViewController alloc]init];

    [[self navigationController]pushViewController:vc2 animated:YES];

提前感谢您的帮助

【问题讨论】:

您能否更具体地说明它是如何不起作用的?什么都没有发生,或者当您按下按钮时应用程序崩溃? 按下按钮时什么都没有发生 你在*.xib文件中设置了“发送事件”吗? 是的,内部触摸按钮 【参考方案1】:

如果您在 ViewController1 中使用情节提要导入 ViewController2 并为其提供情节提要 ID“view2”:

  ViewController2 *vc2 = (ViewController2 *)[self.storyboard instatiateViewControllerWithIdentifier:@"view2"];
  [self.navigationController pushViewController:vc2 animated:YES];

【讨论】:

我使用 .xib 文件,你能告诉我如何使用 .xib 来做到这一点吗? 我不确定,但请尝试:ViewController2 *vc2 = [[UIViewController alloc] initWithNibName:@"nameOfYourController"];

以上是关于在 UINavigationController 中,按钮不适用于 pushViewController的主要内容,如果未能解决你的问题,请参考以下文章

在 UINavigationController 内的 UITabBarcontroller 中添加 UINavigationController?

从嵌入在 UINavigationController 中的一个视图控制器到另一个 UINavigationController

(Swift) 在嵌套在 Main UINavigationController 中的 UINavigationController 和 UITabController 之间切换

关闭 UINavigationController 并呈现另一个 UINavigationController

带有主 UINavigationController 和详细 UINavigationController 的 UISplitViewcontroller

UINavigationController 标题和按钮