最初の UITableView は、アプリケーションの RootViewController から呼び出される Popover 内に表示されます。
同じポップオーバー内の別の UITableView に移動する必要があります。これは、2 番目の UITableView のオブジェクトをインスタンス化し、最初の UITableView からプッシュするだけで簡単に実行できます。
次の段落では、いくつかの事実を当然のこととして書いていますが、間違っている場合は訂正してください。
ここでの問題は、このプロセスを appDelegate 内で実行する必要があることです。これは、私が Dropbox API を実装していて、ログイン プロセスが完了した直後に pushViewController を実行する必要があるためです。つまり、UITableViews を介したナビゲーションは、アプリケーション内で実行する必要があります:handleOpenURL です。application:handleOpenURL をすぐに呼び出す必要があると想定しています。そのため、Dropbox API 検証ウィンドウが表示された後にナビゲーションを実行するには、ユーザーに他に何もさせることなく、そこで pushViewController を実行する必要があると想定しています。 .
これは私のコードがどのように見えるかです:
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;
TableViewControllerForStorageLost.m
-(void)PushView
{
TableViewControllerIpadStorage *tableViewControllerIpadStorage = [[TableViewControllerIpadStorage alloc]initWithNibName:@"TableViewControllerIpadStorage" bundle:Nil];
[self.navigationController pushViewController:tableViewControllerIpadStorage animated:YES];
}
もちろん、Application:HandleOpenURL が実行されていることは確認しましたが、そこから PushView を呼び出すと、[ViewController PushView]: unrecognized selector sent to instance というエラーが表示されます
では、そこからナビゲーションを行うにはどうすればよいでしょうか。目標 c についてどの基本事項が欠けていますか?