2011-08-04 101 views
0

所以我有一个标签栏应用程序,我已经把一个按钮去其他视图。当我尝试去其他视图模拟器崩溃

所以在FirstView.hi有

IBOutlet ContactMainViewController *contactMainViewController; 

-(IBAction)gotoContactMainViewController; 

在我FirstView.mi有

-(IBAction)gotoContactMainViewController { 

    [self presentModalViewController:contactMainViewController animated:YES]; 
} 

,并在我的SecondView,我在创建.h

-(IBAction)goBack; 

,并在.M

-(IBAction)goBack { 

    [self dismissModalViewControllerAnimated:YES]; 
} 

该应用程序运行正常,但是当我点击按钮,一条绿线过来

[self presentModalViewController:contactMainViewController animated:YES]; 

"Thread 1: Program received signal: "SIGABRT" ,这在控制台: terminate called throwing an exception[Switching to process 3908 thread 0xb303]

感谢您的帮助!

回答

1

什么样的firstView和ContactMainViewController类的文件?它是UIViewController还是简单的UIView? 我们假设ContactMainViewController是一个单独的类文件

在firstView.m

#import "ContactMainViewController.h" 

-(IBAction)gotoContactMainViewController { 

    ContactMainViewController _contactMainVC = [[ContactMainViewController alloc]init]; 

    [self presentModalViewController:_contactMainVC animated:YES]; 
    [_contactMainVC release]; 
} 

添加@class ContactMainViewController;在@interface之前的头部中。这应该做到这一点。另外请确保在.m文件中#import“ContactMainViewController.h”以避免警告

+0

谢谢!那工作! :) – AlexF

+0

好AlexF :),但问题不是很清楚,但我预测它,并试图给你答案。我只是想提高我的答案一点点。 –

0

在推送视图之前,您需要分配contactMainViewController

-(IBAction)gotoContactMainViewController { 


if (self.contactMainViewController == nil) 
    self.contactMainViewController = [[ContactMainViewController alloc] init]; 

[self presentModalViewController:contactMainViewController animated:YES]; 
} 
+0

谢谢,但是我必须把它放在哪里? 我必须声明?因为当我将此添加到我的FirstView.m,我有一个错误的contactMainViewContriller .. 再次感谢:) – AlexF

+0

检查编辑..... – Legolas

+0

是的,我已经这样做,但现在我有一个与.contact的问题。 .. self.contactMainViewController self.contactMainViewController – AlexF

1

您必须添加之前由莱格拉斯提供的代码:

[self presentModalViewController:contactMainViewController animated:YES];