功能我是一个初学者programmmer,这是对的Xcode - iPhone。虽然我做了很多我的iPhone应用程序,但我似乎缺乏对简单通信如何工作的一些理解。调用从另一个UIViewController中
特别是当我有2个ViewControllers。
而我从另一个ViewController调用ViewController的一个函数。两者都在tabbarController下。我想实现的是当我在ViewA我,攻上TableCell的之后,我应该调用ViewB的方法和ViewB的导航栏推向viewDetail。
以下是我使用 的代码ViewControllerA.h(其中我打电话的方法)
@class ViewControllerB;
@interface SmartDDxViewController : UIViewController {
IBOutlet UITableView *tableView;
ViewControllerB *xViewController;
}
@property (nonatomic, retain) UITableView *tableView;
@property (nonatomic, retain) ViewControllerB *xViewController;
这是我用来调用它.. ViewControllerA。米
ViewControllerB *ddViewController = [[ViewControllerB alloc] init];
self.xViewController = ddViewController;
[xViewController InitialiseDetailWithId:2 title:@"HEYA"];
赫雷什InitialiseDetailWithId代码:在ViewControllerB.m
-(void)InitialiseDetailWithId:(NSInteger)pkey title:(NSString *)tt{
NSLog(@"InitialiseDetailC=========================================");
AppDelegate *appDelegate = (Smart_DifferentialsAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate GetConditionDetailsWithId:pkey];
DDisViewController *viewController= [[DDisViewController alloc] initWithNibName:@"DetailView" bundle:nil];
viewController.title = tt;
[self.NavBar pushViewController:viewController animated:YES];
//[tt release];
[viewController release];
viewController = nil;
[self say:@"HEYA"]; //this is ALERTVIEW box that displays HEYA
}
我得到的所有信息的罚款,并在alertview确实得到显示。但是当我在TabBar中选择该视图时,它没有被推送。
你的解决方案使应用整洁,但毫无疑问,但我认为我有两个理由,ViewAController属于TabItem1和FROM此控制器,我想要去tabItem2显示ViewBController被推到另一个DetailView 。 我不知道如何推动通过的appDelegate会的工作,那么,它不是我的解决方案工作太..反正 – user134611 2009-09-28 14:02:23
你AppDelegates知道它所有的标签,所以它(如果有的话)应该知道如何推新控制器。 '[[self.tabBarController.viewControllers objectAtIndex:1] pushViewController:newController动画:YES];'或一些其他类似的简单应该做的伎俩。 – PeyloW 2009-09-28 14:47:03
兄弟,我实现了像你说的,我有一些东西迷惑, 我应该在的appDelegate的新方法?应该PushViewController 1和显示TAB1,而这一切我从anotherViewcontrollerB做,大概会喜欢 [的appdelegate NewMethodinAppDel:SD:]。 这样的事? – user134611 2009-10-06 18:36:05