第一UITableView中提出了一種對從應用程序的RootViewController的所謂酥料餅的內部。從一個的UITableView導航到另一個內部的appDelegate
我需要導航到另一個UITableView在同一個彈出窗口內。如果你僅僅實例化第二個UITableView的對象並從第一個對象中推入它,這很容易實現。
在下一段我寫的是理所當然的一些事實,請糾正我,如果我錯了。
的這裏的問題是,這個過程應該在的appDelegate內進行。這是因爲我實現了Dropbox API,並且我需要在登錄過程完成後立即完成pushViewController,這意味着通過UITableViews的導航必須在應用程序內完成:handleOpenURL。我認爲應用程序:handleOpenURL必須在那裏調用,這就是爲什麼我還要pushumeController必須在那裏完成,以便在Dropbox API驗證窗口呈現後完成導航,而不必讓用戶執行任何操作。
這是我的代碼看起來像:
AppDelegate.h
@interface AppDelegate : NSObject <UIApplicationDelegate>{
UINavigationController *navigationController;
NSString *relinkUserId;
UIWindow *window;
TableViewControllerForStorageList *rootViewController;
ViewController *viewController;
}
@property (nonatomic, strong) IBOutlet UIWindow *window;
@property (nonatomic, strong) IBOutlet UINavigationController *navigationController;
@property (nonatomic, strong) IBOutlet TableViewControllerForStorageList *rootViewController;
@property (nonatomic, strong) IBOutlet ViewController *viewController;
AppDelegate.m
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
if ([[DBSession sharedSession] handleOpenURL:url]) {
if ([[DBSession sharedSession] isLinked]) {
[(TableViewControllerForStorageList *)self.window.rootViewController PushView];
}
return YES;
}
return NO;
}
TableViewControllerForStorageList.h
-(void)PushView;
TableViewControllerF orStorageLost.m
-(void)PushView
{
TableViewControllerIpadStorage *tableViewControllerIpadStorage = [[TableViewControllerIpadStorage alloc]initWithNibName:@"TableViewControllerIpadStorage" bundle:Nil];
[self.navigationController pushViewController:tableViewControllerIpadStorage animated:YES];
}
當然,我得到了肯定的應用:HandleOpenURL正在運行,但是從那裏調用PushView當誤差[視圖控制器PushView]:無法識別的選擇發送到實例
那麼,怎樣才能使導航是從那裏完成的?關於目標c的哪些基本知識我缺少?
謝謝,我覺得這是我需要的答案,但如何將代碼看起來,如果我按照使用說明:「你需要轉換到RootViewController的,它實際上是什麼類的實例」? –
如果你問一般的類型轉換看起來如何,你應該在Objective-C上閱讀一下,因爲可能還有其他你不熟悉的關鍵語言特性。至於你的具體情況,它取決於你要類型化的是什麼類,但是乾淨的代碼在我上面的第二次編輯(我將'rootViewController'轉換爲'UINavigationController *')中看起來類似於我的代碼。我真的推薦一些閱讀/谷歌搜索,但如果你想要更具體的幫助,讓你通過這個,然後在你的問題提供一些代碼讓我離開。 – Mathew
檢查我的編輯請 –