我想将一个示例代码与(例如SampleCode项目)我的iPhone应用程序集成。在第一个ViewController中的示例代码添加到MainWindow.xib中,并链接到下面代码中创建的viewController
。
@interface SampleCodeAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
firstViewController *viewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet firstViewController *viewController;
和viewController用initWithCoder实例化,当点击按钮时出现firstView可以打开调用OpenCamera方法,如下面的代码所示。
//in firstViewController.mm file
- (id)initWithCoder:(NSCoder *)coder {
if (self = [super initWithCoder:coder]) {
}
[self initLocal];
return self;
}
//to open camera in SampleCode application
- (IBAction)OpenCamera {
UIApplication *app = [UIApplication sharedApplication];
SampleCodeAppDelegate* delegate = [app delegate];
UIViewController* uiViewCont = [delegate viewController];
((CCamera*)m_pCamera)->Camera(uiViewCont);
}
在我的基于导航的应用程序(MyApplication)中,我想直接使用viewController MyApplicationViewControllerA之一调用SampleCode的firstViewController而不添加到MyApplicationAppDelegate。
所以我想在MyApplicationViewControllerA viewController中创建委托,该委托应该作为SampleCode应用程序中的appdelegate。 我无法打开相机,但关闭相机后,我无法打开除MyApplicationViewControllerA之外的任何其他MyApplication视图。 我正在尝试pushViewController和modalViewController无法呈现其他View。
我对代表并不感到困惑。所以我想知道AppDelegate(在SampleCodeAppDelegate : NSObject <UIApplicationDelegate>
)和其他ViewContrller中声明的委托之间有什么区别。
答案 0 :(得分:2)
我正在尝试pushViewController和modalViewController无法呈现其他视图。
<强>答案:强> 如果您无法在相机覆盖屏幕后显示其他视图,那么我认为您需要通过使用performSelectorOnMainThread在主线程上执行操作来显示其他视图
[self performSelectorOnMainThread:@selector(showOtherView) withObject:OtherViewControllerObj waitUntilDone:YES];
并且在showOtherView选择器方法中首先需要确认是否应该在navigationconroll中推送viewconroller,如果已经推送了那么你应该尝试使用presentModalViewController来显示otherview,如下面的代码。
-(void)showOtherView{
[self.navigationController pushViewController:OtherViewControllerObj animated:YES];
[self presentModalViewController:OtherViewControllerObj animated:YES];
}
我认为这应该有用。