Umu*_*ali 6 iphone pushviewcontroller ios
我有一个使用故事板的标签栏控制器应用程序.每个选项卡都有一个UIWebview.我想在用户单击Webview上的链接时捕获链接,如果链接是外部链接(如果它不是我的站点)我想在不同的UIViewControl中打开链接.(就像一个popupi Twitter iphone应用程序那样做)
马上; 我有这个代码捕获链接(如果链接是bing.com然后它应该打开它另一个视图控制器)但我无法打开另一个UIViewController(在这种情况下PopViewController).它给了我这个错误:
'GundemViewController'没有可见的@interface声明选择器'pushViewController:animated:'
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
//CAPTURE USER LINK-CLICK.
NSURL *url = [request URL];
NSString *urlString = [url absoluteString];
/******
UIWebViewNavigationTypeLinkClicked: When user click on a link in the app it senses the action
*/
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
if ([urlString hasPrefix:@"http://www.bing.com/"]) {
PopViewController *popUpView = [[PopViewController alloc] initWithNibName:@"PopupViewController" bundle:nil];
[self pushViewController:popUpView animated:YES];
return NO;
}
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
Sea*_*ell 11
您可以在每个选项卡中嵌入导航控制器,以便代替:
UITabBarController
Tab1 View Controller
Tab2 View Controller
Tab3 View Controller
Run Code Online (Sandbox Code Playgroud)
你有
UITabBarController
Tab1 Navigation Controller
Tab1 View Controller
Tab2 Navigation Controller
Tab2 View Controller
Tab3 Navigation Controller
Tab3 View Controller
Run Code Online (Sandbox Code Playgroud)
等等.您只能调用-pushViewController:animated:导航控制器的实例.
在您的应用程序委托中,您可能初始化每个视图控制器,将它们放在一个数组中,然后将该数组分配给选项卡栏控制器.要添加导航控制器,您还需要一个额外的步骤:
UIViewController *tab1Controller = [[MyViewController alloc] initWithNibNamed:@"MyViewController" bundle:nil];
UINavigationController *tab1Nav = [[UINavigationController alloc] initWithRootViewController:tab1Controller];
// etc
Run Code Online (Sandbox Code Playgroud)
然后将标签栏控制器的视图控制器数组设置为您创建的导航控制器.
在您的视图控制器,而不是叫-pushViewController:animated:上self,你会调用它self.navigationController.
编辑:
如果您不想使用导航控制器,则可以使用
[self presentViewController:popUpView
animated:YES
completion:nil];
Run Code Online (Sandbox Code Playgroud)
提出弹出窗口.在弹出窗口中,当用户触摸关闭按钮时,使用
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
解雇它.
| 归档时间: |
|
| 查看次数: |
6225 次 |
| 最近记录: |