0

大家好,我已经编写了以下函数,该函数已附加到UIButtons Action.It 被调用并在单击按钮时按要求工作,但在类中的其他地方调用时不起作用。

-(void)punchcardDetailButtonClicked{
    NSLog(@"punchcardDetailButtonClicked");
    PunchCardDetailsViewController *punchCardDetailsViewController=[[PunchCardDetailsViewController alloc] initWithNibName:@"PunchCardDetailsViewController" bundle:nil];
    UINavigationController *nvcLocation=[[UINavigationController alloc] initWithRootViewController:punchCardDetailsViewController];
    punchCardDetailsViewController.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;
    UIColor* navBarColor = [UIColor colorWithRed:128.0/255.0 green:99.0/255.0 blue: 64.0/255.0 alpha:0.0];
    nvcLocation.navigationBar.tintColor = navBarColor;
    [self presentModalViewController:nvcLocation animated:YES];
    [nvcLocation release];
    [punchCardDetailsViewController release];

}

我已经在同一个类中使用了它,[self punchcardDetailButtonClicked]但这不能按预期工作。虽然,NSlog在这两种情况下都会打印出来。

4

1 回答 1

1

你必须展示视图控制器,使用这个

[self presentModalViewController:punchCardDetailsViewController animated:YES];

不是导航控制器,不是这个

[self presentModalViewController:nvcLocation animated:YES];

并且您将视图控制器作为根视图控制器添加到导航控制器,我认为您可以推送该控制器而不是提供过渡样式

[self punchcardDetailButtonClicked]在调用它之前检查您是否在 .h 文件中声明了此方法

于 2012-04-24T06:00:37.957 回答